diff --git a/test/built-ins/Object/seal/seal-aggregateerror-object.js b/test/built-ins/Object/seal/seal-aggregateerror.js similarity index 96% rename from test/built-ins/Object/seal/seal-aggregateerror-object.js rename to test/built-ins/Object/seal/seal-aggregateerror.js index 168bd2b6c8..4587e8adf9 100644 --- a/test/built-ins/Object/seal/seal-aggregateerror-object.js +++ b/test/built-ins/Object/seal/seal-aggregateerror.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an AggregateError object + Object.seal AggregateError info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-arraybuffer-object.js b/test/built-ins/Object/seal/seal-arraybuffer.js similarity index 96% rename from test/built-ins/Object/seal/seal-arraybuffer-object.js rename to test/built-ins/Object/seal/seal-arraybuffer.js index 8bd93342e0..a3f4c05e77 100644 --- a/test/built-ins/Object/seal/seal-arraybuffer-object.js +++ b/test/built-ins/Object/seal/seal-arraybuffer.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an ArrayBuffer object + Object.seal ArrayBuffer info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-arrowfunction-object.js b/test/built-ins/Object/seal/seal-arrowfunction.js similarity index 96% rename from test/built-ins/Object/seal/seal-arrowfunction-object.js rename to test/built-ins/Object/seal/seal-arrowfunction.js index 23ab204328..2d173c287a 100644 --- a/test/built-ins/Object/seal/seal-arrowfunction-object.js +++ b/test/built-ins/Object/seal/seal-arrowfunction.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an ArrowFunction object + Object.seal ArrowFunction info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-asyncarrowfunction-object.js b/test/built-ins/Object/seal/seal-asyncarrowfunction.js similarity index 96% rename from test/built-ins/Object/seal/seal-asyncarrowfunction-object.js rename to test/built-ins/Object/seal/seal-asyncarrowfunction.js index 6b0778e0a1..05e00e8b29 100644 --- a/test/built-ins/Object/seal/seal-asyncarrowfunction-object.js +++ b/test/built-ins/Object/seal/seal-asyncarrowfunction.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an AsyncArrowFunction object + Object.seal AsyncArrowFunction info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-asyncfunction-object.js b/test/built-ins/Object/seal/seal-asyncfunction.js similarity index 96% rename from test/built-ins/Object/seal/seal-asyncfunction-object.js rename to test/built-ins/Object/seal/seal-asyncfunction.js index ce9dcff51b..3523a812e6 100644 --- a/test/built-ins/Object/seal/seal-asyncfunction-object.js +++ b/test/built-ins/Object/seal/seal-asyncfunction.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an AsyncFunction object + Object.seal AsyncFunction info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-asyncgeneratorfunction-object.js b/test/built-ins/Object/seal/seal-asyncgeneratorfunction.js similarity index 96% rename from test/built-ins/Object/seal/seal-asyncgeneratorfunction-object.js rename to test/built-ins/Object/seal/seal-asyncgeneratorfunction.js index c8a5439dcb..75f7dfc785 100644 --- a/test/built-ins/Object/seal/seal-asyncgeneratorfunction-object.js +++ b/test/built-ins/Object/seal/seal-asyncgeneratorfunction.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an AsyncGeneratorFunction object + Object.seal AsyncGeneratorFunction info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-bigint64array-object.js b/test/built-ins/Object/seal/seal-bigint64array.js similarity index 96% rename from test/built-ins/Object/seal/seal-bigint64array-object.js rename to test/built-ins/Object/seal/seal-bigint64array.js index 858a0609aa..af759788b5 100644 --- a/test/built-ins/Object/seal/seal-bigint64array-object.js +++ b/test/built-ins/Object/seal/seal-bigint64array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a BigInt64Array object + Object.seal BigInt64Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-biguint64array-object.js b/test/built-ins/Object/seal/seal-biguint64array.js similarity index 96% rename from test/built-ins/Object/seal/seal-biguint64array-object.js rename to test/built-ins/Object/seal/seal-biguint64array.js index 5baa2d36f0..ce6de0b063 100644 --- a/test/built-ins/Object/seal/seal-biguint64array-object.js +++ b/test/built-ins/Object/seal/seal-biguint64array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a BigUint64Array object + Object.seal BigUint64Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-boolean-literal.js b/test/built-ins/Object/seal/seal-boolean-literal.js new file mode 100644 index 0000000000..3a7fdcee49 --- /dev/null +++ b/test/built-ins/Object/seal/seal-boolean-literal.js @@ -0,0 +1,36 @@ +// Copyright (C) 2020 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.seal +description: > + Object.seal boolean literal +info: | + If Type(O) is not Object, return O. + Let status be ? SetIntegrityLevel(O, sealed). + + SetIntegrityLevel ( O, level ) + + Assert: Type(O) is Object. + Assert: level is either sealed or frozen. + Let status be ? O.[[PreventExtensions]](). + If status is false, return false. + Let keys be ? O.[[OwnPropertyKeys]](). + If level is sealed, then + For each element k of keys, do + Perform ? DefinePropertyOrThrow(O, k, PropertyDescriptor { [[Configurable]]: false }). + Else, + Assert: level is frozen. + For each element k of keys, do + Let currentDesc be ? O.[[GetOwnProperty]](k). + If currentDesc is not undefined, then + If IsAccessorDescriptor(currentDesc) is true, then + Let desc be the PropertyDescriptor { [[Configurable]]: false }. + Else, + Let desc be the PropertyDescriptor { [[Configurable]]: false, [[Writable]]: false }. + Perform ? DefinePropertyOrThrow(O, k, desc). + Return true. + +---*/ + +Object.seal(true); diff --git a/test/built-ins/Object/seal/seal-boolean-object.js b/test/built-ins/Object/seal/seal-boolean.js similarity index 97% rename from test/built-ins/Object/seal/seal-boolean-object.js rename to test/built-ins/Object/seal/seal-boolean.js index 6dc93bea68..99ff41ffe0 100644 --- a/test/built-ins/Object/seal/seal-boolean-object.js +++ b/test/built-ins/Object/seal/seal-boolean.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Boolean object + Object.seal Boolean info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-dataview-object.js b/test/built-ins/Object/seal/seal-dataview.js similarity index 97% rename from test/built-ins/Object/seal/seal-dataview-object.js rename to test/built-ins/Object/seal/seal-dataview.js index 59fe4050d5..2af959d37b 100644 --- a/test/built-ins/Object/seal/seal-dataview-object.js +++ b/test/built-ins/Object/seal/seal-dataview.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a DataView object + Object.seal DataView info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-date-object.js b/test/built-ins/Object/seal/seal-date.js similarity index 97% rename from test/built-ins/Object/seal/seal-date-object.js rename to test/built-ins/Object/seal/seal-date.js index 9ff70aceb3..e4ccbc9bc8 100644 --- a/test/built-ins/Object/seal/seal-date-object.js +++ b/test/built-ins/Object/seal/seal-date.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Date object + Object.seal Date info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-error-object.js b/test/built-ins/Object/seal/seal-error.js similarity index 97% rename from test/built-ins/Object/seal/seal-error-object.js rename to test/built-ins/Object/seal/seal-error.js index 32379eeb9d..4df2297f50 100644 --- a/test/built-ins/Object/seal/seal-error-object.js +++ b/test/built-ins/Object/seal/seal-error.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Error object + Object.seal Error info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-evalerror-object.js b/test/built-ins/Object/seal/seal-evalerror.js similarity index 97% rename from test/built-ins/Object/seal/seal-evalerror-object.js rename to test/built-ins/Object/seal/seal-evalerror.js index 0fbc4f8c45..1568808dde 100644 --- a/test/built-ins/Object/seal/seal-evalerror-object.js +++ b/test/built-ins/Object/seal/seal-evalerror.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an EvalError object + Object.seal EvalError info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-finalizationregistry-object.js b/test/built-ins/Object/seal/seal-finalizationregistry.js similarity index 96% rename from test/built-ins/Object/seal/seal-finalizationregistry-object.js rename to test/built-ins/Object/seal/seal-finalizationregistry.js index a91a5d42a9..49f84dc614 100644 --- a/test/built-ins/Object/seal/seal-finalizationregistry-object.js +++ b/test/built-ins/Object/seal/seal-finalizationregistry.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a FinalizationRegistry object + Object.seal FinalizationRegistry info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-float32array-object.js b/test/built-ins/Object/seal/seal-float32array.js similarity index 96% rename from test/built-ins/Object/seal/seal-float32array-object.js rename to test/built-ins/Object/seal/seal-float32array.js index b0fdd7762a..e2438eccd8 100644 --- a/test/built-ins/Object/seal/seal-float32array-object.js +++ b/test/built-ins/Object/seal/seal-float32array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Float32Array object + Object.seal Float32Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-float64array-object.js b/test/built-ins/Object/seal/seal-float64array.js similarity index 96% rename from test/built-ins/Object/seal/seal-float64array-object.js rename to test/built-ins/Object/seal/seal-float64array.js index 1ab039e468..9bd8d2de4e 100644 --- a/test/built-ins/Object/seal/seal-float64array-object.js +++ b/test/built-ins/Object/seal/seal-float64array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Float64Array object + Object.seal Float64Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-function-object.js b/test/built-ins/Object/seal/seal-function.js similarity index 97% rename from test/built-ins/Object/seal/seal-function-object.js rename to test/built-ins/Object/seal/seal-function.js index 8875de6c1b..6096e1a58d 100644 --- a/test/built-ins/Object/seal/seal-function-object.js +++ b/test/built-ins/Object/seal/seal-function.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Function object + Object.seal Function info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-generatorfunction-object.js b/test/built-ins/Object/seal/seal-generatorfunction.js similarity index 96% rename from test/built-ins/Object/seal/seal-generatorfunction-object.js rename to test/built-ins/Object/seal/seal-generatorfunction.js index c14d0301f1..9dfa36b882 100644 --- a/test/built-ins/Object/seal/seal-generatorfunction-object.js +++ b/test/built-ins/Object/seal/seal-generatorfunction.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a GeneratorFunction object + Object.seal GeneratorFunction info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-infinity.js b/test/built-ins/Object/seal/seal-infinity.js new file mode 100644 index 0000000000..aa2bd6735c --- /dev/null +++ b/test/built-ins/Object/seal/seal-infinity.js @@ -0,0 +1,36 @@ +// Copyright (C) 2020 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.seal +description: > + Object.seal Infinity +info: | + If Type(O) is not Object, return O. + Let status be ? SetIntegrityLevel(O, sealed). + + SetIntegrityLevel ( O, level ) + + Assert: Type(O) is Object. + Assert: level is either sealed or frozen. + Let status be ? O.[[PreventExtensions]](). + If status is false, return false. + Let keys be ? O.[[OwnPropertyKeys]](). + If level is sealed, then + For each element k of keys, do + Perform ? DefinePropertyOrThrow(O, k, PropertyDescriptor { [[Configurable]]: false }). + Else, + Assert: level is frozen. + For each element k of keys, do + Let currentDesc be ? O.[[GetOwnProperty]](k). + If currentDesc is not undefined, then + If IsAccessorDescriptor(currentDesc) is true, then + Let desc be the PropertyDescriptor { [[Configurable]]: false }. + Else, + Let desc be the PropertyDescriptor { [[Configurable]]: false, [[Writable]]: false }. + Perform ? DefinePropertyOrThrow(O, k, desc). + Return true. + +---*/ + +Object.seal(Infinity); diff --git a/test/built-ins/Object/seal/seal-int16array-object.js b/test/built-ins/Object/seal/seal-int16array.js similarity index 96% rename from test/built-ins/Object/seal/seal-int16array-object.js rename to test/built-ins/Object/seal/seal-int16array.js index b4177e9d3a..b46245923b 100644 --- a/test/built-ins/Object/seal/seal-int16array-object.js +++ b/test/built-ins/Object/seal/seal-int16array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Int16Array object + Object.seal Int16Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-int32array-object.js b/test/built-ins/Object/seal/seal-int32array.js similarity index 96% rename from test/built-ins/Object/seal/seal-int32array-object.js rename to test/built-ins/Object/seal/seal-int32array.js index a9ecdb491a..2ec07224bd 100644 --- a/test/built-ins/Object/seal/seal-int32array-object.js +++ b/test/built-ins/Object/seal/seal-int32array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Int32Array object + Object.seal Int32Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-int8array-object.js b/test/built-ins/Object/seal/seal-int8array.js similarity index 97% rename from test/built-ins/Object/seal/seal-int8array-object.js rename to test/built-ins/Object/seal/seal-int8array.js index d9054c93fa..03d74bebcf 100644 --- a/test/built-ins/Object/seal/seal-int8array-object.js +++ b/test/built-ins/Object/seal/seal-int8array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Int8Array object + Object.seal Int8Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-map-object.js b/test/built-ins/Object/seal/seal-map.js similarity index 97% rename from test/built-ins/Object/seal/seal-map-object.js rename to test/built-ins/Object/seal/seal-map.js index d04b731bd3..fb248eb5bb 100644 --- a/test/built-ins/Object/seal/seal-map-object.js +++ b/test/built-ins/Object/seal/seal-map.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Map object + Object.seal Map info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-nan.js b/test/built-ins/Object/seal/seal-nan.js new file mode 100644 index 0000000000..52edbfb460 --- /dev/null +++ b/test/built-ins/Object/seal/seal-nan.js @@ -0,0 +1,36 @@ +// Copyright (C) 2020 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.seal +description: > + Object.seal NaN +info: | + If Type(O) is not Object, return O. + Let status be ? SetIntegrityLevel(O, sealed). + + SetIntegrityLevel ( O, level ) + + Assert: Type(O) is Object. + Assert: level is either sealed or frozen. + Let status be ? O.[[PreventExtensions]](). + If status is false, return false. + Let keys be ? O.[[OwnPropertyKeys]](). + If level is sealed, then + For each element k of keys, do + Perform ? DefinePropertyOrThrow(O, k, PropertyDescriptor { [[Configurable]]: false }). + Else, + Assert: level is frozen. + For each element k of keys, do + Let currentDesc be ? O.[[GetOwnProperty]](k). + If currentDesc is not undefined, then + If IsAccessorDescriptor(currentDesc) is true, then + Let desc be the PropertyDescriptor { [[Configurable]]: false }. + Else, + Let desc be the PropertyDescriptor { [[Configurable]]: false, [[Writable]]: false }. + Perform ? DefinePropertyOrThrow(O, k, desc). + Return true. + +---*/ + +Object.seal(NaN); diff --git a/test/built-ins/Object/seal/seal-null.js b/test/built-ins/Object/seal/seal-null.js new file mode 100644 index 0000000000..2478bf2d33 --- /dev/null +++ b/test/built-ins/Object/seal/seal-null.js @@ -0,0 +1,36 @@ +// Copyright (C) 2020 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.seal +description: > + Object.seal null +info: | + If Type(O) is not Object, return O. + Let status be ? SetIntegrityLevel(O, sealed). + + SetIntegrityLevel ( O, level ) + + Assert: Type(O) is Object. + Assert: level is either sealed or frozen. + Let status be ? O.[[PreventExtensions]](). + If status is false, return false. + Let keys be ? O.[[OwnPropertyKeys]](). + If level is sealed, then + For each element k of keys, do + Perform ? DefinePropertyOrThrow(O, k, PropertyDescriptor { [[Configurable]]: false }). + Else, + Assert: level is frozen. + For each element k of keys, do + Let currentDesc be ? O.[[GetOwnProperty]](k). + If currentDesc is not undefined, then + If IsAccessorDescriptor(currentDesc) is true, then + Let desc be the PropertyDescriptor { [[Configurable]]: false }. + Else, + Let desc be the PropertyDescriptor { [[Configurable]]: false, [[Writable]]: false }. + Perform ? DefinePropertyOrThrow(O, k, desc). + Return true. + +---*/ + +Object.seal(null); diff --git a/test/built-ins/Object/seal/seal-number-object.js b/test/built-ins/Object/seal/seal-number.js similarity index 97% rename from test/built-ins/Object/seal/seal-number-object.js rename to test/built-ins/Object/seal/seal-number.js index fb2051af67..3321ab3665 100644 --- a/test/built-ins/Object/seal/seal-number-object.js +++ b/test/built-ins/Object/seal/seal-number.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Number object + Object.seal Number info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-object-object.js b/test/built-ins/Object/seal/seal-object.js similarity index 97% rename from test/built-ins/Object/seal/seal-object-object.js rename to test/built-ins/Object/seal/seal-object.js index 52200fa0db..1a9d49c2d2 100644 --- a/test/built-ins/Object/seal/seal-object-object.js +++ b/test/built-ins/Object/seal/seal-object.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Object object + Object.seal Object info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-promise-object.js b/test/built-ins/Object/seal/seal-promise.js similarity index 97% rename from test/built-ins/Object/seal/seal-promise-object.js rename to test/built-ins/Object/seal/seal-promise.js index b088811c07..487f34ced7 100644 --- a/test/built-ins/Object/seal/seal-promise-object.js +++ b/test/built-ins/Object/seal/seal-promise.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Promise object + Object.seal Promise info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-proxy-object.js b/test/built-ins/Object/seal/seal-proxy.js similarity index 97% rename from test/built-ins/Object/seal/seal-proxy-object.js rename to test/built-ins/Object/seal/seal-proxy.js index 80f3b843bb..674926861a 100644 --- a/test/built-ins/Object/seal/seal-proxy-object.js +++ b/test/built-ins/Object/seal/seal-proxy.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Proxy object + Object.seal Proxy info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-rangeerror-object.js b/test/built-ins/Object/seal/seal-rangeerror.js similarity index 97% rename from test/built-ins/Object/seal/seal-rangeerror-object.js rename to test/built-ins/Object/seal/seal-rangeerror.js index 168af6cae3..e8ad29b57c 100644 --- a/test/built-ins/Object/seal/seal-rangeerror-object.js +++ b/test/built-ins/Object/seal/seal-rangeerror.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a RangeError object + Object.seal RangeError info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-referenceerror-object.js b/test/built-ins/Object/seal/seal-referenceerror.js similarity index 96% rename from test/built-ins/Object/seal/seal-referenceerror-object.js rename to test/built-ins/Object/seal/seal-referenceerror.js index 179b62f26a..ae0be532bd 100644 --- a/test/built-ins/Object/seal/seal-referenceerror-object.js +++ b/test/built-ins/Object/seal/seal-referenceerror.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a ReferenceError object + Object.seal ReferenceError info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-regexp-object.js b/test/built-ins/Object/seal/seal-regexp.js similarity index 97% rename from test/built-ins/Object/seal/seal-regexp-object.js rename to test/built-ins/Object/seal/seal-regexp.js index e3fcc1da49..bb5b0449d6 100644 --- a/test/built-ins/Object/seal/seal-regexp-object.js +++ b/test/built-ins/Object/seal/seal-regexp.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a RegExp object + Object.seal RegExp info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-set-object.js b/test/built-ins/Object/seal/seal-set.js similarity index 97% rename from test/built-ins/Object/seal/seal-set-object.js rename to test/built-ins/Object/seal/seal-set.js index ee19406fe6..b8e1afa0d6 100644 --- a/test/built-ins/Object/seal/seal-set-object.js +++ b/test/built-ins/Object/seal/seal-set.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Set object + Object.seal Set info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-sharedarraybuffer-object.js b/test/built-ins/Object/seal/seal-sharedarraybuffer.js similarity index 96% rename from test/built-ins/Object/seal/seal-sharedarraybuffer-object.js rename to test/built-ins/Object/seal/seal-sharedarraybuffer.js index 2d0f819927..8bd43e470e 100644 --- a/test/built-ins/Object/seal/seal-sharedarraybuffer-object.js +++ b/test/built-ins/Object/seal/seal-sharedarraybuffer.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a SharedArrayBuffer object + Object.seal SharedArrayBuffer info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-string-object.js b/test/built-ins/Object/seal/seal-string.js similarity index 97% rename from test/built-ins/Object/seal/seal-string-object.js rename to test/built-ins/Object/seal/seal-string.js index 7ed7b6c950..e65b5cebe2 100644 --- a/test/built-ins/Object/seal/seal-string-object.js +++ b/test/built-ins/Object/seal/seal-string.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a String object + Object.seal String info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-symbol-object.js b/test/built-ins/Object/seal/seal-symbol.js similarity index 97% rename from test/built-ins/Object/seal/seal-symbol-object.js rename to test/built-ins/Object/seal/seal-symbol.js index 5253413002..ad4c896e04 100644 --- a/test/built-ins/Object/seal/seal-symbol-object.js +++ b/test/built-ins/Object/seal/seal-symbol.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a Symbol object + Object.seal Symbol info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-syntaxerror-object.js b/test/built-ins/Object/seal/seal-syntaxerror.js similarity index 96% rename from test/built-ins/Object/seal/seal-syntaxerror-object.js rename to test/built-ins/Object/seal/seal-syntaxerror.js index 8be18a6655..c834e15b83 100644 --- a/test/built-ins/Object/seal/seal-syntaxerror-object.js +++ b/test/built-ins/Object/seal/seal-syntaxerror.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a SyntaxError object + Object.seal SyntaxError info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-typeerror-object.js b/test/built-ins/Object/seal/seal-typeerror.js similarity index 97% rename from test/built-ins/Object/seal/seal-typeerror-object.js rename to test/built-ins/Object/seal/seal-typeerror.js index 68e6710614..75ff572032 100644 --- a/test/built-ins/Object/seal/seal-typeerror-object.js +++ b/test/built-ins/Object/seal/seal-typeerror.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a TypeError object + Object.seal TypeError info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-uint16array-object.js b/test/built-ins/Object/seal/seal-uint16array.js similarity index 96% rename from test/built-ins/Object/seal/seal-uint16array-object.js rename to test/built-ins/Object/seal/seal-uint16array.js index 463045b883..aa77593f99 100644 --- a/test/built-ins/Object/seal/seal-uint16array-object.js +++ b/test/built-ins/Object/seal/seal-uint16array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Uint16Array object + Object.seal Uint16Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-uint32array-object.js b/test/built-ins/Object/seal/seal-uint32array.js similarity index 96% rename from test/built-ins/Object/seal/seal-uint32array-object.js rename to test/built-ins/Object/seal/seal-uint32array.js index 4fc1d70acc..abbce14e3a 100644 --- a/test/built-ins/Object/seal/seal-uint32array-object.js +++ b/test/built-ins/Object/seal/seal-uint32array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Uint32Array object + Object.seal Uint32Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-uint8array-object.js b/test/built-ins/Object/seal/seal-uint8array.js similarity index 96% rename from test/built-ins/Object/seal/seal-uint8array-object.js rename to test/built-ins/Object/seal/seal-uint8array.js index 416c04eae5..59c77d6628 100644 --- a/test/built-ins/Object/seal/seal-uint8array-object.js +++ b/test/built-ins/Object/seal/seal-uint8array.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Uint8Array object + Object.seal Uint8Array info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-uint8clampedarray-object.js b/test/built-ins/Object/seal/seal-uint8clampedarray.js similarity index 96% rename from test/built-ins/Object/seal/seal-uint8clampedarray-object.js rename to test/built-ins/Object/seal/seal-uint8clampedarray.js index 119207baec..025930e893 100644 --- a/test/built-ins/Object/seal/seal-uint8clampedarray-object.js +++ b/test/built-ins/Object/seal/seal-uint8clampedarray.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an Uint8ClampedArray object + Object.seal Uint8ClampedArray info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-undefined.js b/test/built-ins/Object/seal/seal-undefined.js new file mode 100644 index 0000000000..0971231eff --- /dev/null +++ b/test/built-ins/Object/seal/seal-undefined.js @@ -0,0 +1,36 @@ +// Copyright (C) 2020 Rick Waldron. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.seal +description: > + Object.seal undefined +info: | + If Type(O) is not Object, return O. + Let status be ? SetIntegrityLevel(O, sealed). + + SetIntegrityLevel ( O, level ) + + Assert: Type(O) is Object. + Assert: level is either sealed or frozen. + Let status be ? O.[[PreventExtensions]](). + If status is false, return false. + Let keys be ? O.[[OwnPropertyKeys]](). + If level is sealed, then + For each element k of keys, do + Perform ? DefinePropertyOrThrow(O, k, PropertyDescriptor { [[Configurable]]: false }). + Else, + Assert: level is frozen. + For each element k of keys, do + Let currentDesc be ? O.[[GetOwnProperty]](k). + If currentDesc is not undefined, then + If IsAccessorDescriptor(currentDesc) is true, then + Let desc be the PropertyDescriptor { [[Configurable]]: false }. + Else, + Let desc be the PropertyDescriptor { [[Configurable]]: false, [[Writable]]: false }. + Perform ? DefinePropertyOrThrow(O, k, desc). + Return true. + +---*/ + +Object.seal(undefined); diff --git a/test/built-ins/Object/seal/seal-urierror-object.js b/test/built-ins/Object/seal/seal-urierror.js similarity index 97% rename from test/built-ins/Object/seal/seal-urierror-object.js rename to test/built-ins/Object/seal/seal-urierror.js index 88bd2f046a..b69c3faa5b 100644 --- a/test/built-ins/Object/seal/seal-urierror-object.js +++ b/test/built-ins/Object/seal/seal-urierror.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal an URIError object + Object.seal URIError info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-weakmap-object.js b/test/built-ins/Object/seal/seal-weakmap.js similarity index 97% rename from test/built-ins/Object/seal/seal-weakmap-object.js rename to test/built-ins/Object/seal/seal-weakmap.js index 89d08e0749..34a9dfc3ac 100644 --- a/test/built-ins/Object/seal/seal-weakmap-object.js +++ b/test/built-ins/Object/seal/seal-weakmap.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a WeakMap object + Object.seal WeakMap info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-weakref-object.js b/test/built-ins/Object/seal/seal-weakref.js similarity index 97% rename from test/built-ins/Object/seal/seal-weakref-object.js rename to test/built-ins/Object/seal/seal-weakref.js index 435d11f14e..0022162498 100644 --- a/test/built-ins/Object/seal/seal-weakref-object.js +++ b/test/built-ins/Object/seal/seal-weakref.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a WeakRef object + Object.seal WeakRef info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed). diff --git a/test/built-ins/Object/seal/seal-weakset-object.js b/test/built-ins/Object/seal/seal-weakset.js similarity index 97% rename from test/built-ins/Object/seal/seal-weakset-object.js rename to test/built-ins/Object/seal/seal-weakset.js index 3c2626d33a..f81e0c9531 100644 --- a/test/built-ins/Object/seal/seal-weakset-object.js +++ b/test/built-ins/Object/seal/seal-weakset.js @@ -4,7 +4,7 @@ /*--- esid: sec-object.seal description: > - Object.seal a WeakSet object + Object.seal WeakSet info: | If Type(O) is not Object, return O. Let status be ? SetIntegrityLevel(O, sealed).