Add Object.{freeze,preventExtensions,seal} abrupt completion tests (#2468)

* Add Object.freeze test

* Add Object.preventExtensions test

* Add Object.seal test
This commit is contained in:
Alexey Shvayka 2020-01-14 18:31:45 +02:00 committed by Leo Balter
parent 28b4fcca4b
commit 4383f2c6ba
3 changed files with 82 additions and 0 deletions

View File

@ -0,0 +1,29 @@
// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-object.freeze
description: >
O.[[PreventExtensions]]() returns abrupt completion.
info: |
Object.freeze ( O )
...
2. Let status be ? SetIntegrityLevel(O, frozen).
SetIntegrityLevel ( O, level )
...
3. Let status be ? O.[[PreventExtensions]]().
features: [Proxy]
---*/
var p = new Proxy({}, {
preventExtensions: function() {
throw new Test262Error();
},
});
assert.throws(Test262Error, function() {
Object.freeze(p);
});

View File

@ -0,0 +1,24 @@
// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-object.preventextensions
description: >
O.[[PreventExtensions]]() returns abrupt completion.
info: |
Object.preventExtensions ( O )
...
2. Let status be ? O.[[PreventExtensions]]().
features: [Proxy]
---*/
var p = new Proxy({}, {
preventExtensions: function() {
throw new Test262Error();
},
});
assert.throws(Test262Error, function() {
Object.preventExtensions(p);
});

View File

@ -0,0 +1,29 @@
// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-object.seal
description: >
O.[[PreventExtensions]]() returns abrupt completion.
info: |
Object.seal ( O )
...
2. Let status be ? SetIntegrityLevel(O, sealed).
SetIntegrityLevel ( O, level )
...
3. Let status be ? O.[[PreventExtensions]]().
features: [Proxy]
---*/
var p = new Proxy({}, {
preventExtensions: function() {
throw new Test262Error();
},
});
assert.throws(Test262Error, function() {
Object.seal(p);
});