Merge pull request #3210 from tc39/rwaldron/shadowrealm-fixups

ShadowRealm: improved existing and additional coverage
This commit is contained in:
Leo Balter 2021-09-22 10:10:57 -07:00 committed by GitHub
commit 94500e1de9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 0 deletions

View File

@ -7,6 +7,12 @@ description: >
features: [ShadowRealm]
---*/
assert.sameValue(
typeof ShadowRealm.prototype.evaluate,
'function',
'This test must fail if ShadowRealm.prototype.evaluate is not a function'
);
globalThis.myValue = 'a';
const realm1 = new ShadowRealm();

View File

@ -0,0 +1,25 @@
// Copyright (C) 2021 Rick Waldron. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-shadowrealm.prototype.evaluate
description: >
ShadowRealm.prototype.evaluate wrapped proxy callable object.
features: [ShadowRealm]
---*/
assert.sameValue(
typeof ShadowRealm.prototype.evaluate,
'function',
'This test must fail if ShadowRealm.prototype.evaluate is not a function'
);
const r = new ShadowRealm();
const proxyCallable = r.evaluate(`
function fn() { return 42; }
new Proxy(fn, {});
`);
assert.sameValue(typeof proxyCallable, 'function', 'wrapped proxy callable object is typeof function');
assert.sameValue(proxyCallable(), 42, 'wrappedpfn() returns 42');
assert.sameValue(proxyCallable instanceof Proxy, false, 'the wrapped function "hides" the proxy instance');

View File

@ -6,6 +6,11 @@ description: >
ShadowRealm can wrap a function to multiple nested realms.
features: [ShadowRealm]
---*/
assert.sameValue(
typeof ShadowRealm.prototype.evaluate,
'function',
'This test must fail if ShadowRealm.prototype.evaluate is not a function'
);
globalThis.count = 0;
const realm1 = new ShadowRealm();