Fix WrappedFunction throwing tests (#3396)

Also adds more non-string cases for copy name
This commit is contained in:
legendecas 2022-02-05 07:08:14 +08:00 committed by GitHub
parent b3774e9593
commit 281c781ee4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 10 deletions

View File

@ -23,7 +23,7 @@ assert.sameValue(
const r = new ShadowRealm();
assert.throws(TypeError, r.evaluate(`
assert.throws(TypeError, () => r.evaluate(`
function fn() {}
Object.defineProperty(fn, 'length', {
get: () => {

View File

@ -23,7 +23,7 @@ assert.sameValue(
const r = new ShadowRealm();
assert.throws(TypeError, r.evaluate(`
assert.throws(TypeError, () => r.evaluate(`
function fn() {}
Object.defineProperty(fn, 'name', {
get: () => {

View File

@ -64,18 +64,20 @@ verifyProperty(wrapped, "name", {
});
// The value of fn.name is not a string.
wrapped = r.evaluate(`
for (const name of [null, undefined, 0, '1n', false, NaN, Infinity, 'Symbol()', '[]', '{}']) {
wrapped = r.evaluate(`
function fn() {}
Object.defineProperty(fn, 'name', {
get: () => 1,
value: ${String(name)},
enumerable: false,
configurable: true,
});
fn;
`);
verifyProperty(wrapped, "name", {
verifyProperty(wrapped, "name", {
value: "",
enumerable: false,
writable: false,
configurable: true,
});
});
}