import 'browser-polyfills';
import 'string.fromcodepoint';
import 'abortcontroller-polyfill/dist/polyfill-patch-fetch';

// polyfill requestIdleCallback
window.requestIdleCallback = window.requestIdleCallback ||
    function(cb) {
        var start = Date.now();
        return window.requestAnimationFrame(function() {
            cb({
                didTimeout: false,
                timeRemaining: function() {
                    return Math.max(0, 50 - (Date.now() - start));
                }
            });
        });
    };

window.cancelIdleCallback = window.cancelIdleCallback ||
    function(id) {
        window.cancelAnimationFrame(id);
    };


import * as iD from './index';
window.iD = iD;

import 'browser-polyfills';
import 'string.fromcodepoint/auto';
import 'abortcontroller-polyfill/dist/polyfill-patch-fetch';

// polyfill requestIdleCallback
window.requestIdleCallback = window.requestIdleCallback ||
    function(cb) {
        var start = Date.now();
        return window.requestAnimationFrame(function() {
            cb({
                didTimeout: false,
                timeRemaining: function() {
                    return Math.max(0, 50 - (Date.now() - start));
                }
            });
        });
    };

window.cancelIdleCallback = window.cancelIdleCallback ||
    function(id) {
        window.cancelAnimationFrame(id);
    };


import * as iD from './index';
window.iD = iD;

Update for string.fromcodepoint v1.0.0 API
Update for string.fromcodepoint v1.0.0 API
