Raise an error if a private method is added twice to an object
This commit is contained in:
parent
b51b5100b0
commit
864a66459b
2 changed files with 6 additions and 8 deletions
|
@ -7261,6 +7261,12 @@ static int JS_AddBrand(JSContext *ctx, JSValue obj, JSValue home_obj)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
p1 = JS_VALUE_GET_OBJ(obj);
|
p1 = JS_VALUE_GET_OBJ(obj);
|
||||||
|
prs = find_own_property(&pr, p1, brand_atom);
|
||||||
|
if (unlikely(prs)) {
|
||||||
|
JS_FreeAtom(ctx, brand_atom);
|
||||||
|
JS_ThrowTypeError(ctx, "private method is already present");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
pr = add_property(ctx, p1, brand_atom, JS_PROP_C_W_E);
|
pr = add_property(ctx, p1, brand_atom, JS_PROP_C_W_E);
|
||||||
JS_FreeAtom(ctx, brand_atom);
|
JS_FreeAtom(ctx, brand_atom);
|
||||||
if (!pr)
|
if (!pr)
|
||||||
|
|
|
@ -44,13 +44,5 @@ test262/test/language/statements/async-generator/yield-star-promise-not-unwrappe
|
||||||
test262/test/language/statements/async-generator/yield-star-promise-not-unwrapped.js:25: strict mode: TypeError: $DONE() not called
|
test262/test/language/statements/async-generator/yield-star-promise-not-unwrapped.js:25: strict mode: TypeError: $DONE() not called
|
||||||
test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: TypeError: $DONE() not called
|
test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: TypeError: $DONE() not called
|
||||||
test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: strict mode: TypeError: $DONE() not called
|
test262/test/language/statements/async-generator/yield-star-return-then-getter-ticks.js:131: strict mode: TypeError: $DONE() not called
|
||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-get-and-set.js:33: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
|
||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-get-and-set.js:33: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
|
||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-get.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
|
||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-get.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
|
||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-set.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
|
||||||
test262/test/language/statements/class/elements/private-method-double-initialisation-set.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
|
||||||
test262/test/language/statements/class/elements/private-method-double-initialisation.js:32: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
|
||||||
test262/test/language/statements/class/elements/private-method-double-initialisation.js:32: strict mode: Test262Error: Expected a TypeError to be thrown but no exception was thrown at all
|
|
||||||
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: unexpected error type: Test262: This statement should not be evaluated.
|
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: unexpected error type: Test262: This statement should not be evaluated.
|
||||||
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: strict mode: unexpected error type: Test262: This statement should not be evaluated.
|
test262/test/language/statements/for-of/head-lhs-async-invalid.js:14: strict mode: unexpected error type: Test262: This statement should not be evaluated.
|
||||||
|
|
Loading…
Reference in a new issue