From 027f38176faf299aa95a1a0314b94e8e8c26bb09 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Wed, 13 Mar 2019 08:14:23 -0700 Subject: [PATCH] Fix regression in prepareContext() that caused "constructor" to be enumerable. [closes #747] --- src/util/prepare-context.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/util/prepare-context.js b/src/util/prepare-context.js index 11f1b80bc..c27b2a1a9 100644 --- a/src/util/prepare-context.js +++ b/src/util/prepare-context.js @@ -144,21 +144,22 @@ function init() { } if (typeof RealmBuiltin === "function") { + setPrototypeOf(RealmBuiltin, getPrototypeOf(Builtin)) + if (has(RealmBuiltin, "prototype")) { const RealmProto = RealmBuiltin.prototype if (isObjectLike(RealmProto)) { const BuiltinProto = Builtin.prototype + setPrototypeOf(RealmProto, BuiltinProto) + if (has(BuiltinProto, "constructor")) { - setProperty(RealmProto, "constructor", BuiltinProto.constructor) + Reflect.defineProperty(RealmProto, "constructor", + Reflect.getOwnPropertyDescriptor(BuiltinProto, "constructor")) } - - setPrototypeOf(RealmProto, BuiltinProto) } } - - setPrototypeOf(RealmBuiltin, getPrototypeOf(Builtin)) } })