Use ReferenceError from right realm/context (#107)
The "this is not initialized" ReferenceError for a class C defined in context B but instantiated in context A should be an instance of the ReferenceError from A, not B.
This commit is contained in:
parent
7c9cf46f97
commit
9e8d278161
2 changed files with 6 additions and 5 deletions
|
@ -15112,7 +15112,8 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
|
||||||
idx = get_u16(pc);
|
idx = get_u16(pc);
|
||||||
pc += 2;
|
pc += 2;
|
||||||
if (unlikely(JS_IsUninitialized(var_buf[idx]))) {
|
if (unlikely(JS_IsUninitialized(var_buf[idx]))) {
|
||||||
JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, FALSE);
|
JS_ThrowReferenceErrorUninitialized2(caller_ctx, b, idx,
|
||||||
|
FALSE);
|
||||||
goto exception;
|
goto exception;
|
||||||
}
|
}
|
||||||
sp[0] = JS_DupValue(ctx, var_buf[idx]);
|
sp[0] = JS_DupValue(ctx, var_buf[idx]);
|
||||||
|
@ -15125,7 +15126,8 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
|
||||||
idx = get_u16(pc);
|
idx = get_u16(pc);
|
||||||
pc += 2;
|
pc += 2;
|
||||||
if (unlikely(JS_IsUninitialized(var_buf[idx]))) {
|
if (unlikely(JS_IsUninitialized(var_buf[idx]))) {
|
||||||
JS_ThrowReferenceErrorUninitialized2(ctx, b, idx, FALSE);
|
JS_ThrowReferenceErrorUninitialized2(caller_ctx, b, idx,
|
||||||
|
FALSE);
|
||||||
goto exception;
|
goto exception;
|
||||||
}
|
}
|
||||||
set_value(ctx, &var_buf[idx], sp[-1]);
|
set_value(ctx, &var_buf[idx], sp[-1]);
|
||||||
|
@ -15138,7 +15140,8 @@ static JSValue JS_CallInternal(JSContext *caller_ctx, JSValueConst func_obj,
|
||||||
idx = get_u16(pc);
|
idx = get_u16(pc);
|
||||||
pc += 2;
|
pc += 2;
|
||||||
if (unlikely(!JS_IsUninitialized(var_buf[idx]))) {
|
if (unlikely(!JS_IsUninitialized(var_buf[idx]))) {
|
||||||
JS_ThrowReferenceError(ctx, "'this' can be initialized only once");
|
JS_ThrowReferenceError(caller_ctx,
|
||||||
|
"'this' can be initialized only once");
|
||||||
goto exception;
|
goto exception;
|
||||||
}
|
}
|
||||||
set_value(ctx, &var_buf[idx], sp[-1]);
|
set_value(ctx, &var_buf[idx], sp[-1]);
|
||||||
|
|
|
@ -5,8 +5,6 @@ test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-brok
|
||||||
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js:34: strict mode: TypeError: $DONE() not called
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedStart-broken-promise.js:34: strict mode: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js:39: TypeError: $DONE() not called
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js:39: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js:39: strict mode: TypeError: $DONE() not called
|
test262/test/built-ins/AsyncGeneratorPrototype/return/return-suspendedYield-broken-promise-try-catch.js:39: strict mode: TypeError: $DONE() not called
|
||||||
test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:20: Test262Error: Expected a ReferenceError but got a different error constructor with the same name
|
|
||||||
test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:20: strict mode: Test262Error: Expected a ReferenceError but got a different error constructor with the same name
|
|
||||||
test262/test/built-ins/RegExp/lookahead-quantifier-match-groups.js:27: Test262Error: Expected [a, abc] and [a, undefined] to have the same contents. ? quantifier
|
test262/test/built-ins/RegExp/lookahead-quantifier-match-groups.js:27: Test262Error: Expected [a, abc] and [a, undefined] to have the same contents. ? quantifier
|
||||||
test262/test/built-ins/RegExp/lookahead-quantifier-match-groups.js:27: strict mode: Test262Error: Expected [a, abc] and [a, undefined] to have the same contents. ? quantifier
|
test262/test/built-ins/RegExp/lookahead-quantifier-match-groups.js:27: strict mode: Test262Error: Expected [a, abc] and [a, undefined] to have the same contents. ? quantifier
|
||||||
test262/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-no-throw.js:30: TypeError: out-of-bound numeric index (Testing with Float64Array.)
|
test262/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-no-throw.js:30: TypeError: out-of-bound numeric index (Testing with Float64Array.)
|
||||||
|
|
Loading…
Reference in a new issue