MCPcopy Index your code
hub / github.com/plotly/dash / shouldUseNative

Function shouldUseNative

dash/deps/react@16.14.0.js:74–116  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

72 }
73
74 function shouldUseNative() {
75 try {
76 if (!Object.assign) {
77 return false;
78 }
79
80 // Detect buggy property enumeration order in older V8 versions.
81
82 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
83 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
84 test1[5] = 'de';
85 if (Object.getOwnPropertyNames(test1)[0] === '5') {
86 return false;
87 }
88
89 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
90 var test2 = {};
91 for (var i = 0; i < 10; i++) {
92 test2['_' + String.fromCharCode(i)] = i;
93 }
94 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
95 return test2[n];
96 });
97 if (order2.join('') !== '0123456789') {
98 return false;
99 }
100
101 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
102 var test3 = {};
103 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
104 test3[letter] = letter;
105 });
106 if (Object.keys(Object.assign({}, test3)).join('') !==
107 'abcdefghijklmnopqrst') {
108 return false;
109 }
110
111 return true;
112 } catch (err) {
113 // We don't expect any of the above to throw, but better to be safe.
114 return false;
115 }
116 }
117
118 var objectAssign = shouldUseNative() ? Object.assign : function (target, source) {
119 var from;

Callers 1

react@16.14.0.jsFile · 0.70

Calls 2

keysMethod · 0.80
assignMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…