diff options
Diffstat (limited to 'js/vendor/es6-shim/es6-sham.js')
-rw-r--r-- | js/vendor/es6-shim/es6-sham.js | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/js/vendor/es6-shim/es6-sham.js b/js/vendor/es6-shim/es6-sham.js deleted file mode 100644 index ec8025a54..000000000 --- a/js/vendor/es6-shim/es6-sham.js +++ /dev/null @@ -1,168 +0,0 @@ - /*! - * https://github.com/paulmillr/es6-shim - * @license es6-shim Copyright 2013-2016 by Paul Miller (http://paulmillr.com) - * and contributors, MIT License - * es6-sham: v0.35.0 - * see https://github.com/paulmillr/es6-shim/blob/0.35.0/LICENSE - * Details and documentation: - * https://github.com/paulmillr/es6-shim/ - */ - -// UMD (Universal Module Definition) -// see https://github.com/umdjs/umd/blob/master/returnExports.js -(function (root, factory) { - /*global define, exports, module */ - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - root.returnExports = factory(); - } -}(this, function () { - 'use strict'; - - /*jshint evil: true */ - /* eslint-disable no-new-func */ - var getGlobal = new Function('return this;'); - /* eslint-enable no-new-func */ - /*jshint evil: false */ - - var globals = getGlobal(); - var Object = globals.Object; - var _call = Function.call.bind(Function.call); - var functionToString = Function.toString; - var _strMatch = String.prototype.match; - - var throwsError = function (func) { - try { - func(); - return false; - } catch (e) { - return true; - } - }; - var arePropertyDescriptorsSupported = function () { - // if Object.defineProperty exists but throws, it's IE 8 - return !throwsError(function () { Object.defineProperty({}, 'x', { get: function () {} }); }); - }; - var supportsDescriptors = !!Object.defineProperty && arePropertyDescriptorsSupported(); - - // NOTE: This versions needs object ownership - // because every promoted object needs to be reassigned - // otherwise uncompatible browsers cannot work as expected - // - // NOTE: This might need es5-shim or polyfills upfront - // because it's based on ES5 API. - // (probably just an IE <= 8 problem) - // - // NOTE: nodejs is fine in version 0.8, 0.10, and future versions. - (function () { - if (Object.setPrototypeOf) { return; } - - /*jshint proto: true */ - // @author Andrea Giammarchi - @WebReflection - - var getOwnPropertyNames = Object.getOwnPropertyNames; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var create = Object.create; - var defineProperty = Object.defineProperty; - var getPrototypeOf = Object.getPrototypeOf; - var objProto = Object.prototype; - - var copyDescriptors = function (target, source) { - // define into target descriptors from source - getOwnPropertyNames(source).forEach(function (key) { - defineProperty( - target, - key, - getOwnPropertyDescriptor(source, key) - ); - }); - return target; - }; - // used as fallback when no promotion is possible - var createAndCopy = function (origin, proto) { - return copyDescriptors(create(proto), origin); - }; - var set, setPrototypeOf; - try { - // this might fail for various reasons - // ignore if Chrome cought it at runtime - set = getOwnPropertyDescriptor(objProto, '__proto__').set; - set.call({}, null); - // setter not poisoned, it can promote - // Firefox, Chrome - setPrototypeOf = function (origin, proto) { - set.call(origin, proto); - return origin; - }; - } catch (e) { - // do one or more feature detections - set = { __proto__: null }; - // if proto does not work, needs to fallback - // some Opera, Rhino, ducktape - if (set instanceof Object) { - setPrototypeOf = createAndCopy; - } else { - // verify if null objects are buggy - /* eslint-disable no-proto */ - set.__proto__ = objProto; - /* eslint-enable no-proto */ - // if null objects are buggy - // nodejs 0.8 to 0.10 - if (set instanceof Object) { - setPrototypeOf = function (origin, proto) { - // use such bug to promote - /* eslint-disable no-proto */ - origin.__proto__ = proto; - /* eslint-enable no-proto */ - return origin; - }; - } else { - // try to use proto or fallback - // Safari, old Firefox, many others - setPrototypeOf = function (origin, proto) { - // if proto is not null - if (getPrototypeOf(origin)) { - // use __proto__ to promote - /* eslint-disable no-proto */ - origin.__proto__ = proto; - /* eslint-enable no-proto */ - return origin; - } else { - // otherwise unable to promote: fallback - return createAndCopy(origin, proto); - } - }; - } - } - } - Object.setPrototypeOf = setPrototypeOf; - }()); - - if (supportsDescriptors && function foo() {}.name !== 'foo') { - /* eslint no-extend-native: 1 */ - Object.defineProperty(Function.prototype, 'name', { - configurable: true, - enumerable: false, - get: function () { - var str = _call(functionToString, this); - var match = _call(_strMatch, str, /\s*function\s+([^\(\s]*)\s*/); - var name = match && match[1]; - Object.defineProperty(this, 'name', { - configurable: true, - enumerable: false, - writable: false, - value: name - }); - return name; - } - }); - } -})); |