object.assign
Advanced tools
Comparing version 2.0.2 to 2.0.3
@@ -0,1 +1,9 @@ | ||
2.0.3 / 2015-06-28 | ||
================== | ||
* Cache `Object` and `Array#push` to make the shim more robust. | ||
* [Fix] Remove use of `Array#filter`, which isn't in ES3 | ||
* [Deps] Update `object-keys`, `define-properties` | ||
* [Dev Deps] Update `browserify`, `nsp`, `eslint` | ||
* [Tests] Test up to `io.js` `v2.3` | ||
2.0.2 / 2015-05-20 | ||
@@ -2,0 +10,0 @@ ================== |
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
var keys = require('object-keys').shim(); | ||
delete keys.shim; | ||
var assign = require('./'); | ||
module.exports = assign.shim(); | ||
delete assign.shim; | ||
},{"./":2,"object-keys":5}],2:[function(require,module,exports){ | ||
'use strict'; | ||
@@ -11,18 +21,20 @@ | ||
var defineProperties = require('define-properties'); | ||
var toObject = Object; | ||
var push = Array.prototype.push; | ||
var propIsEnumerable = Object.prototype.propertyIsEnumerable; | ||
var isEnumerableOn = function (obj) { | ||
return function isEnumerable(prop) { | ||
return propIsEnumerable.call(obj, prop); | ||
}; | ||
}; | ||
var assignShim = function assign(target, source1) { | ||
if (!canBeObject(target)) { throw new TypeError('target must be an object'); } | ||
var objTarget = Object(target); | ||
var s, source, i, props; | ||
var objTarget = toObject(target); | ||
var s, source, i, props, syms; | ||
for (s = 1; s < arguments.length; ++s) { | ||
source = Object(arguments[s]); | ||
source = toObject(arguments[s]); | ||
props = keys(source); | ||
if (hasSymbols && Object.getOwnPropertySymbols) { | ||
props.push.apply(props, Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source))); | ||
syms = Object.getOwnPropertySymbols(source); | ||
for (i = 0; i < syms.length; ++i) { | ||
if (propIsEnumerable.call(source, syms[i])) { | ||
push.call(props, syms[i]); | ||
} | ||
} | ||
} | ||
@@ -62,4 +74,3 @@ for (i = 0; i < props.length; ++i) { | ||
},{"define-properties":2,"object-keys":4}],2:[function(require,module,exports){ | ||
},{"define-properties":3,"object-keys":5}],3:[function(require,module,exports){ | ||
'use strict'; | ||
@@ -114,3 +125,3 @@ | ||
},{"foreach":3,"object-keys":4}],3:[function(require,module,exports){ | ||
},{"foreach":4,"object-keys":5}],4:[function(require,module,exports){ | ||
@@ -139,3 +150,3 @@ var hasOwn = Object.prototype.hasOwnProperty; | ||
},{}],4:[function(require,module,exports){ | ||
},{}],5:[function(require,module,exports){ | ||
'use strict'; | ||
@@ -146,2 +157,3 @@ | ||
var toStr = Object.prototype.toString; | ||
var slice = Array.prototype.slice; | ||
var isArgs = require('./isArguments'); | ||
@@ -206,2 +218,17 @@ var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString'); | ||
Object.keys = keysShim; | ||
} else { | ||
var keysWorksWithArguments = (function () { | ||
// Safari 5.0 bug | ||
return (Object.keys(arguments) || '').length === 2; | ||
}(1, 2)); | ||
if (!keysWorksWithArguments) { | ||
var originalKeys = Object.keys; | ||
Object.keys = function keys(object) { | ||
if (isArgs(object)) { | ||
return originalKeys(slice.call(object)); | ||
} else { | ||
return originalKeys(object); | ||
} | ||
}; | ||
} | ||
} | ||
@@ -213,3 +240,3 @@ return Object.keys || keysShim; | ||
},{"./isArguments":5}],5:[function(require,module,exports){ | ||
},{"./isArguments":6}],6:[function(require,module,exports){ | ||
'use strict'; | ||
@@ -223,8 +250,8 @@ | ||
if (!isArgs) { | ||
isArgs = str !== '[object Array]' | ||
&& value !== null | ||
&& typeof value === 'object' | ||
&& typeof value.length === 'number' | ||
&& value.length >= 0 | ||
&& toStr.call(value.callee) === '[object Function]'; | ||
isArgs = str !== '[object Array]' && | ||
value !== null && | ||
typeof value === 'object' && | ||
typeof value.length === 'number' && | ||
value.length >= 0 && | ||
toStr.call(value.callee) === '[object Function]'; | ||
} | ||
@@ -234,12 +261,2 @@ return isArgs; | ||
},{}],6:[function(require,module,exports){ | ||
var keys = require('object-keys').shim(); | ||
delete keys.shim; | ||
var assign = require('./'); | ||
module.exports = assign.shim(); | ||
delete assign.shim; | ||
},{"./":1,"object-keys":4}]},{},[6]); | ||
},{}]},{},[1]); |
21
index.js
@@ -10,18 +10,20 @@ 'use strict'; | ||
var defineProperties = require('define-properties'); | ||
var toObject = Object; | ||
var push = Array.prototype.push; | ||
var propIsEnumerable = Object.prototype.propertyIsEnumerable; | ||
var isEnumerableOn = function (obj) { | ||
return function isEnumerable(prop) { | ||
return propIsEnumerable.call(obj, prop); | ||
}; | ||
}; | ||
var assignShim = function assign(target, source1) { | ||
if (!canBeObject(target)) { throw new TypeError('target must be an object'); } | ||
var objTarget = Object(target); | ||
var s, source, i, props; | ||
var objTarget = toObject(target); | ||
var s, source, i, props, syms; | ||
for (s = 1; s < arguments.length; ++s) { | ||
source = Object(arguments[s]); | ||
source = toObject(arguments[s]); | ||
props = keys(source); | ||
if (hasSymbols && Object.getOwnPropertySymbols) { | ||
props.push.apply(props, Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source))); | ||
syms = Object.getOwnPropertySymbols(source); | ||
for (i = 0; i < syms.length; ++i) { | ||
if (propIsEnumerable.call(source, syms[i])) { | ||
push.call(props, syms[i]); | ||
} | ||
} | ||
} | ||
@@ -60,2 +62,1 @@ for (i = 0; i < props.length; ++i) { | ||
module.exports = assignShim; | ||
{ | ||
"name": "object.assign", | ||
"version": "2.0.2", | ||
"version": "2.0.3", | ||
"author": "Jordan Harband", | ||
@@ -34,7 +34,7 @@ "description": "ES6 spec-compliant Object.assign shim. From https://github.com/es-shims/es6-shim", | ||
"dependencies": { | ||
"object-keys": "^1.0.3", | ||
"define-properties": "^1.0.1" | ||
"object-keys": "^1.0.4", | ||
"define-properties": "^1.0.2" | ||
}, | ||
"devDependencies": { | ||
"browserify": "^10.1.3", | ||
"browserify": "^10.2.4", | ||
"is": "^3.0.1", | ||
@@ -44,4 +44,4 @@ "tape": "^4.0.0", | ||
"jscs": "^1.13.1", | ||
"nsp": "^1.0.1", | ||
"eslint": "^0.21.0" | ||
"nsp": "^1.0.3", | ||
"eslint": "^0.24.0" | ||
}, | ||
@@ -48,0 +48,0 @@ "testling": { |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
29878
423
Updateddefine-properties@^1.0.2
Updatedobject-keys@^1.0.4