refactor: update runtime code for primordial check x in y (#13642)

Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
This commit is contained in:
Bartek Iwańczuk 2022-04-16 14:09:07 +02:00 committed by GitHub
parent 8b31fc23cd
commit 0bb96cde72
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 65 additions and 37 deletions

View file

@ -57,6 +57,7 @@
ReflectApply,
ReflectDefineProperty,
ReflectGetOwnPropertyDescriptor,
ReflectHas,
ReflectOwnKeys,
RegExpPrototypeTest,
Set,
@ -648,7 +649,7 @@
const defaultValues = {};
for (const member of allMembers) {
if ("defaultValue" in member) {
if (ReflectHas(member, "defaultValue")) {
const idlMemberValue = member.defaultValue;
const imvType = typeof idlMemberValue;
// Copy by value types can be directly assigned, copy by reference types
@ -1013,13 +1014,16 @@
for (const key in descriptors) {
if (key === "constructor") continue;
const descriptor = descriptors[key];
if ("value" in descriptor && typeof descriptor.value === "function") {
if (
ReflectHas(descriptor, "value") &&
typeof descriptor.value === "function"
) {
ObjectDefineProperty(prototype.prototype, key, {
enumerable: true,
writable: true,
configurable: true,
});
} else if ("get" in descriptor) {
} else if (ReflectHas(descriptor, "get")) {
ObjectDefineProperty(prototype.prototype, key, {
enumerable: true,
configurable: true,