8000 Inline extensible · powercoder23/immutable-js@d842f04 · GitHub
[go: up one dir, main page]

Skip to content

Commit d842f04

Browse files
committed
Inline extensible
1 parent 55f4d5e commit d842f04

File tree

3 files changed

+29
-31
lines changed

3 files changed

+29
-31
lines changed

dist/immutable.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -836,19 +836,15 @@
836836
}
837837
}
838838

839-
if (!usingWeakMap &&
840-
typeof Object.isExtensible === 'function' &&
841-
Object.isExtensible(obj) === false) {
842-
throw new Error('Non-extensible objects are not allowed as keys.');
843-
}
844-
845839
hash = ++objHashUID;
846840
if (objHashUID & 0x40000000) {
847841
objHashUID = 0;
848842
}
849843

850844
if (usingWeakMap) {
851845
weakMap.set(obj, hash);
846+
} else if (isExtensible !== undefined && isExtensible(obj) === false) {
847+
throw new Error('Non-extensible objects are not allowed as keys.');
852848
} else if (canDefineProperty) {
853849
Object.defineProperty(obj, UID_HASH_KEY, {
854850
'enumerable': false,
@@ -879,6 +875,9 @@
879875
return hash;
880876
}
881877

878+
// Get references to ES5 object methods.
879+
var isExtensible = Object.isExtensible;
880+
882881
// True if Object.defineProperty works as expected. IE8 fails this test.
883882
var canDefineProperty = (function() {
884883
try {

0 commit comments

Comments
 (0)
0