MCPcopy
hub / github.com/t4t5/sweetalert / shouldUseNative

Function shouldUseNative

docs/assets/js/index.js:64480–64522  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

64478}
64479
64480function shouldUseNative() {
64481 try {
64482 if (!Object.assign) {
64483 return false;
64484 }
64485
64486 // Detect buggy property enumeration order in older V8 versions.
64487
64488 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
64489 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
64490 test1[5] = 'de';
64491 if (Object.getOwnPropertyNames(test1)[0] === '5') {
64492 return false;
64493 }
64494
64495 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
64496 var test2 = {};
64497 for (var i = 0; i < 10; i++) {
64498 test2['_' + String.fromCharCode(i)] = i;
64499 }
64500 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
64501 return test2[n];
64502 });
64503 if (order2.join('') !== '0123456789') {
64504 return false;
64505 }
64506
64507 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
64508 var test3 = {};
64509 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
64510 test3[letter] = letter;
64511 });
64512 if (Object.keys(Object.assign({}, test3)).join('') !==
64513 'abcdefghijklmnopqrst') {
64514 return false;
64515 }
64516
64517 return true;
64518 } catch (err) {
64519 // We don't expect any of the above to throw, but better to be safe.
64520 return false;
64521 }
64522}
64523
64524module.exports = shouldUseNative() ? Object.assign : function (target, source) {
64525 var from;

Callers 1

index.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…