Submit
Path:
~
/
/
usr
/
share
/
nodejs
/
object.assign
/
File Content:
polyfill.js
'use strict'; var implementation = require('./implementation'); var lacksProperEnumerationOrder = function () { if (!Object.assign) { return false; } /* * v8, specifically in node 4.x, has a bug with incorrect property enumeration order * note: this does not detect the bug unless there's 20 characters */ var str = 'abcdefghijklmnopqrst'; var letters = str.split(''); var map = {}; for (var i = 0; i < letters.length; ++i) { map[letters[i]] = letters[i]; } var obj = Object.assign({}, map); var actual = ''; for (var k in obj) { actual += k; } return str !== actual; }; var assignHasPendingExceptions = function () { if (!Object.assign || !Object.preventExtensions) { return false; } /* * Firefox 37 still has "pending exception" logic in its Object.assign implementation, * which is 72% slower than our shim, and Firefox 40's native implementation. */ var thrower = Object.preventExtensions({ 1: 2 }); try { Object.assign(thrower, 'xy'); } catch (e) { return thrower[1] === 'y'; } return false; }; module.exports = function getPolyfill() { if (!Object.assign) { return implementation; } if (lacksProperEnumerationOrder()) { return implementation; } if (assignHasPendingExceptions()) { return implementation; } return Object.assign; };
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
auto.js
36 bytes
0644
hasSymbols.js
1618 bytes
0644
implementation.js
1329 bytes
0644
index.js
532 bytes
0644
package.json
1977 bytes
0644
polyfill.js
1299 bytes
0644
shim.js
305 bytes
0644
N4ST4R_ID | Naxtarrr