318 lines
8.8 KiB
JavaScript
318 lines
8.8 KiB
JavaScript
|
(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
||
|
'use strict';
|
||
|
|
||
|
var systemGlobal = require('./');
|
||
|
|
||
|
module.exports = systemGlobal.shim();
|
||
|
|
||
|
},{"./":3}],2:[function(require,module,exports){
|
||
|
/* eslint no-negated-condition: 0, no-new-func: 0 */
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
if (typeof self !== 'undefined') {
|
||
|
module.exports = self;
|
||
|
} else if (typeof window !== 'undefined') {
|
||
|
module.exports = window;
|
||
|
} else {
|
||
|
module.exports = Function('return this')();
|
||
|
}
|
||
|
|
||
|
},{}],3:[function(require,module,exports){
|
||
|
'use strict';
|
||
|
|
||
|
var defineProperties = require('define-properties');
|
||
|
|
||
|
var implementation = require('./implementation');
|
||
|
var getPolyfill = require('./polyfill');
|
||
|
var shim = require('./shim');
|
||
|
|
||
|
var polyfill = getPolyfill();
|
||
|
|
||
|
var getGlobal = function () { return polyfill; };
|
||
|
|
||
|
defineProperties(getGlobal, {
|
||
|
getPolyfill: getPolyfill,
|
||
|
implementation: implementation,
|
||
|
shim: shim
|
||
|
});
|
||
|
|
||
|
module.exports = getGlobal;
|
||
|
|
||
|
},{"./implementation":2,"./polyfill":8,"./shim":9,"define-properties":4}],4:[function(require,module,exports){
|
||
|
'use strict';
|
||
|
|
||
|
var keys = require('object-keys');
|
||
|
var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
|
||
|
|
||
|
var toStr = Object.prototype.toString;
|
||
|
var concat = Array.prototype.concat;
|
||
|
var origDefineProperty = Object.defineProperty;
|
||
|
|
||
|
var isFunction = function (fn) {
|
||
|
return typeof fn === 'function' && toStr.call(fn) === '[object Function]';
|
||
|
};
|
||
|
|
||
|
var arePropertyDescriptorsSupported = function () {
|
||
|
var obj = {};
|
||
|
try {
|
||
|
origDefineProperty(obj, 'x', { enumerable: false, value: obj });
|
||
|
// eslint-disable-next-line no-unused-vars, no-restricted-syntax
|
||
|
for (var _ in obj) { // jscs:ignore disallowUnusedVariables
|
||
|
return false;
|
||
|
}
|
||
|
return obj.x === obj;
|
||
|
} catch (e) { /* this is IE 8. */
|
||
|
return false;
|
||
|
}
|
||
|
};
|
||
|
var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();
|
||
|
|
||
|
var defineProperty = function (object, name, value, predicate) {
|
||
|
if (name in object && (!isFunction(predicate) || !predicate())) {
|
||
|
return;
|
||
|
}
|
||
|
if (supportsDescriptors) {
|
||
|
origDefineProperty(object, name, {
|
||
|
configurable: true,
|
||
|
enumerable: false,
|
||
|
value: value,
|
||
|
writable: true
|
||
|
});
|
||
|
} else {
|
||
|
object[name] = value;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
var defineProperties = function (object, map) {
|
||
|
var predicates = arguments.length > 2 ? arguments[2] : {};
|
||
|
var props = keys(map);
|
||
|
if (hasSymbols) {
|
||
|
props = concat.call(props, Object.getOwnPropertySymbols(map));
|
||
|
}
|
||
|
for (var i = 0; i < props.length; i += 1) {
|
||
|
defineProperty(object, props[i], map[props[i]], predicates[props[i]]);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
defineProperties.supportsDescriptors = !!supportsDescriptors;
|
||
|
|
||
|
module.exports = defineProperties;
|
||
|
|
||
|
},{"object-keys":6}],5:[function(require,module,exports){
|
||
|
'use strict';
|
||
|
|
||
|
var keysShim;
|
||
|
if (!Object.keys) {
|
||
|
// modified from https://github.com/es-shims/es5-shim
|
||
|
var has = Object.prototype.hasOwnProperty;
|
||
|
var toStr = Object.prototype.toString;
|
||
|
var isArgs = require('./isArguments'); // eslint-disable-line global-require
|
||
|
var isEnumerable = Object.prototype.propertyIsEnumerable;
|
||
|
var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');
|
||
|
var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');
|
||
|
var dontEnums = [
|
||
|
'toString',
|
||
|
'toLocaleString',
|
||
|
'valueOf',
|
||
|
'hasOwnProperty',
|
||
|
'isPrototypeOf',
|
||
|
'propertyIsEnumerable',
|
||
|
'constructor'
|
||
|
];
|
||
|
var equalsConstructorPrototype = function (o) {
|
||
|
var ctor = o.constructor;
|
||
|
return ctor && ctor.prototype === o;
|
||
|
};
|
||
|
var excludedKeys = {
|
||
|
$applicationCache: true,
|
||
|
$console: true,
|
||
|
$external: true,
|
||
|
$frame: true,
|
||
|
$frameElement: true,
|
||
|
$frames: true,
|
||
|
$innerHeight: true,
|
||
|
$innerWidth: true,
|
||
|
$onmozfullscreenchange: true,
|
||
|
$onmozfullscreenerror: true,
|
||
|
$outerHeight: true,
|
||
|
$outerWidth: true,
|
||
|
$pageXOffset: true,
|
||
|
$pageYOffset: true,
|
||
|
$parent: true,
|
||
|
$scrollLeft: true,
|
||
|
$scrollTop: true,
|
||
|
$scrollX: true,
|
||
|
$scrollY: true,
|
||
|
$self: true,
|
||
|
$webkitIndexedDB: true,
|
||
|
$webkitStorageInfo: true,
|
||
|
$window: true
|
||
|
};
|
||
|
var hasAutomationEqualityBug = (function () {
|
||
|
/* global window */
|
||
|
if (typeof window === 'undefined') { return false; }
|
||
|
for (var k in window) {
|
||
|
try {
|
||
|
if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
|
||
|
try {
|
||
|
equalsConstructorPrototype(window[k]);
|
||
|
} catch (e) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
} catch (e) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}());
|
||
|
var equalsConstructorPrototypeIfNotBuggy = function (o) {
|
||
|
/* global window */
|
||
|
if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
|
||
|
return equalsConstructorPrototype(o);
|
||
|
}
|
||
|
try {
|
||
|
return equalsConstructorPrototype(o);
|
||
|
} catch (e) {
|
||
|
return false;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
keysShim = function keys(object) {
|
||
|
var isObject = object !== null && typeof object === 'object';
|
||
|
var isFunction = toStr.call(object) === '[object Function]';
|
||
|
var isArguments = isArgs(object);
|
||
|
var isString = isObject && toStr.call(object) === '[object String]';
|
||
|
var theKeys = [];
|
||
|
|
||
|
if (!isObject && !isFunction && !isArguments) {
|
||
|
throw new TypeError('Object.keys called on a non-object');
|
||
|
}
|
||
|
|
||
|
var skipProto = hasProtoEnumBug && isFunction;
|
||
|
if (isString && object.length > 0 && !has.call(object, 0)) {
|
||
|
for (var i = 0; i < object.length; ++i) {
|
||
|
theKeys.push(String(i));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (isArguments && object.length > 0) {
|
||
|
for (var j = 0; j < object.length; ++j) {
|
||
|
theKeys.push(String(j));
|
||
|
}
|
||
|
} else {
|
||
|
for (var name in object) {
|
||
|
if (!(skipProto && name === 'prototype') && has.call(object, name)) {
|
||
|
theKeys.push(String(name));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (hasDontEnumBug) {
|
||
|
var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
|
||
|
|
||
|
for (var k = 0; k < dontEnums.length; ++k) {
|
||
|
if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
|
||
|
theKeys.push(dontEnums[k]);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return theKeys;
|
||
|
};
|
||
|
}
|
||
|
module.exports = keysShim;
|
||
|
|
||
|
},{"./isArguments":7}],6:[function(require,module,exports){
|
||
|
'use strict';
|
||
|
|
||
|
var slice = Array.prototype.slice;
|
||
|
var isArgs = require('./isArguments');
|
||
|
|
||
|
var origKeys = Object.keys;
|
||
|
var keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');
|
||
|
|
||
|
var originalKeys = Object.keys;
|
||
|
|
||
|
keysShim.shim = function shimObjectKeys() {
|
||
|
if (Object.keys) {
|
||
|
var keysWorksWithArguments = (function () {
|
||
|
// Safari 5.0 bug
|
||
|
var args = Object.keys(arguments);
|
||
|
return args && args.length === arguments.length;
|
||
|
}(1, 2));
|
||
|
if (!keysWorksWithArguments) {
|
||
|
Object.keys = function keys(object) { // eslint-disable-line func-name-matching
|
||
|
if (isArgs(object)) {
|
||
|
return originalKeys(slice.call(object));
|
||
|
}
|
||
|
return originalKeys(object);
|
||
|
};
|
||
|
}
|
||
|
} else {
|
||
|
Object.keys = keysShim;
|
||
|
}
|
||
|
return Object.keys || keysShim;
|
||
|
};
|
||
|
|
||
|
module.exports = keysShim;
|
||
|
|
||
|
},{"./implementation":5,"./isArguments":7}],7:[function(require,module,exports){
|
||
|
'use strict';
|
||
|
|
||
|
var toStr = Object.prototype.toString;
|
||
|
|
||
|
module.exports = function isArguments(value) {
|
||
|
var str = toStr.call(value);
|
||
|
var isArgs = str === '[object Arguments]';
|
||
|
if (!isArgs) {
|
||
|
isArgs = str !== '[object Array]' &&
|
||
|
value !== null &&
|
||
|
typeof value === 'object' &&
|
||
|
typeof value.length === 'number' &&
|
||
|
value.length >= 0 &&
|
||
|
toStr.call(value.callee) === '[object Function]';
|
||
|
}
|
||
|
return isArgs;
|
||
|
};
|
||
|
|
||
|
},{}],8:[function(require,module,exports){
|
||
|
(function (global){
|
||
|
'use strict';
|
||
|
|
||
|
var implementation = require('./implementation');
|
||
|
|
||
|
module.exports = function getPolyfill() {
|
||
|
if (typeof global !== 'object' || !global || global.Math !== Math || global.Array !== Array) {
|
||
|
return implementation;
|
||
|
}
|
||
|
return global;
|
||
|
};
|
||
|
|
||
|
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
||
|
},{"./implementation":2}],9:[function(require,module,exports){
|
||
|
'use strict';
|
||
|
|
||
|
var define = require('define-properties');
|
||
|
var getPolyfill = require('./polyfill');
|
||
|
|
||
|
module.exports = function shimGlobal() {
|
||
|
var polyfill = getPolyfill();
|
||
|
if (define.supportsDescriptors) {
|
||
|
var descriptor = Object.getOwnPropertyDescriptor(polyfill, 'globalThis');
|
||
|
if (!descriptor || (descriptor.configurable && (descriptor.enumerable || descriptor.writable || globalThis !== polyfill))) { // eslint-disable-line max-len
|
||
|
Object.defineProperty(polyfill, 'globalThis', {
|
||
|
configurable: true,
|
||
|
enumerable: false,
|
||
|
value: polyfill,
|
||
|
writable: false
|
||
|
});
|
||
|
}
|
||
|
} else if (typeof globalThis !== 'object' || globalThis !== polyfill) {
|
||
|
polyfill.globalThis = polyfill;
|
||
|
}
|
||
|
return polyfill;
|
||
|
};
|
||
|
|
||
|
},{"./polyfill":8,"define-properties":4}]},{},[1]);
|