test262/test/built-ins/ShadowRealm/instance-extensibility.js

44 lines
1.1 KiB
JavaScript
Raw Permalink Normal View History

2021-07-20 22:00:30 +02:00
// Copyright (C) 2021 Leo Balter. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
2021-09-02 17:07:19 +02:00
esid: sec-shadowrealm
2021-07-20 22:00:30 +02:00
description: >
The new instance is extensible
info: |
2021-09-02 17:07:19 +02:00
ShadowRealm ( )
2021-07-20 22:00:30 +02:00
...
2021-09-02 17:07:19 +02:00
2. Let O be ? OrdinaryCreateFromConstructor(NewTarget, "%ShadowRealm.prototype%",
« [[ShadowRealm]], [[ExecutionContext]] »).
2021-07-20 22:00:30 +02:00
...
13. Return O.
OrdinaryCreateFromConstructor creates a new ordinary objects including the
internal slots [[Prototype]] and [[Extensible]]. The latter will have its
value set to true.
includes: [propertyHelper.js]
features: [ShadowRealm]
2021-07-20 22:00:30 +02:00
---*/
2021-09-02 17:07:19 +02:00
const realm = new ShadowRealm();
2021-07-20 22:00:30 +02:00
assert(Object.isExtensible(realm));
Object.defineProperty(realm, 'foo', { configurable: true });
2021-07-20 22:00:30 +02:00
assert(realm.hasOwnProperty('foo'), 'confirms extensibility adding a new property');
Object.defineProperty(realm, 'foo', {
value: 'bar',
writable: true,
configurable: true,
enumerable: false,
});
verifyProperty(realm, 'foo', {
value: 'bar',
writable: true,
configurable: true,
enumerable: false,
});