diff options
Diffstat (limited to 'js/vendor/es6-shim/es6-sham.js')
-rw-r--r-- | js/vendor/es6-shim/es6-sham.js | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/js/vendor/es6-shim/es6-sham.js b/js/vendor/es6-shim/es6-sham.js index 105f09d16..570deb3f0 100644 --- a/js/vendor/es6-shim/es6-sham.js +++ b/js/vendor/es6-shim/es6-sham.js @@ -48,8 +48,16 @@ /*jshint proto: true */ // @author Andrea Giammarchi - @WebReflection - // define into target descriptors from source + + 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, @@ -63,17 +71,11 @@ var createAndCopy = function (origin, proto) { return copyDescriptors(create(proto), origin); }; - var create = Object.create; - var defineProperty = Object.defineProperty; - var getPrototypeOf = Object.getPrototypeOf; - var getOwnPropertyNames = Object.getOwnPropertyNames; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var proto = Object.prototype; var set, setPrototypeOf; try { // this might fail for various reasons // ignore if Chrome cought it at runtime - set = getOwnPropertyDescriptor(proto, '__proto__').set; + set = getOwnPropertyDescriptor(objProto, '__proto__').set; set.call({}, null); // setter not poisoned, it can promote // Firefox, Chrome @@ -90,7 +92,7 @@ setPrototypeOf = createAndCopy; } else { // verify if null objects are buggy - set.__proto__ = proto; + set.__proto__ = objProto; // if null objects are buggy // nodejs 0.8 to 0.10 if (set instanceof Object) { |