Skip to content

Commit

Permalink
simple refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
aleen42 committed Dec 14, 2019
1 parent fd1ed7c commit 4e2ba6e
Showing 1 changed file with 8 additions and 5 deletions.
13 changes: 8 additions & 5 deletions packages/core-js/internals/object-create.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@ var sharedKey = require('../internals/shared-key');
var IE_PROTO = sharedKey('IE_PROTO');
var PROTOTYPE = 'prototype';
var EmptyConstructor = function () { /* empty */ };
var length = enumBugKeys.length;

var NullProtoObject = function (ProtoObject) {
var length = enumBugKeys.length;
while (length--) delete ProtoObject[PROTOTYPE][enumBugKeys[length]];
return ProtoObject();
};

// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
var NullProtoObjectViaActiveX = function () {
Expand All @@ -26,8 +31,7 @@ var NullProtoObjectViaActiveX = function () {
activeXDocument.close();
NullProtoObjectViaIFrame = activeXDocument.parentWindow.Object;
activeXDocument = null;
while (length--) delete NullProtoObjectViaActiveX[PROTOTYPE][enumBugKeys[length]];
return NullProtoObjectViaIFrame();
return NullProtoObject(NullProtoObjectViaActiveX)
};

// Create object with fake `null` prototype: use iframe Object with cleared prototype
Expand All @@ -48,8 +52,7 @@ var NullProtoObjectViaIFrame = function () {
iframeDocument.write(LT + SCRIPT + GT + 'document.F=Object' + LT + '/' + SCRIPT + GT);
iframeDocument.close();
NullProtoObjectViaIFrame = iframeDocument.F;
while (length--) delete NullProtoObjectViaIFrame[PROTOTYPE][enumBugKeys[length]];
return NullProtoObjectViaIFrame();
return NullProtoObject(NullProtoObjectViaIFrame);
};

hiddenKeys[IE_PROTO] = true;
Expand Down

0 comments on commit 4e2ba6e

Please sign in to comment.