26 lines
622 B
JavaScript
26 lines
622 B
JavaScript
|
// Copyright 2022 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
class Base {
|
||
|
constructor(arg) {
|
||
|
return arg;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class ClassNonExtensibleWithIndexField extends Base {
|
||
|
[0] = (() => {
|
||
|
Object.preventExtensions(this);
|
||
|
return 'defined';
|
||
|
})();
|
||
|
['nonExtensible'] = 4;
|
||
|
constructor(arg) {
|
||
|
super(arg);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
assertThrows(() => {
|
||
|
new ClassNonExtensibleWithIndexField(globalThis);
|
||
|
}, TypeError, /Cannot define property 0, object is not extensible/);
|
||
|
assertEquals("undefined", typeof nonExtensible);
|