instance-extensibility-sab.js (1529B)
1 // |reftest| skip-if(!this.hasOwnProperty('SharedArrayBuffer')) -- SharedArrayBuffer is not enabled unconditionally 2 // Copyright (C) 2016 the V8 project authors. All rights reserved. 3 // Copyright (C) 2017 Mozilla Corporation. All rights reserved. 4 // This code is governed by the BSD license found in the LICENSE file. 5 6 /*--- 7 esid: sec-dataview-buffer-byteoffset-bytelength 8 description: > 9 The new instance is extensible 10 info: | 11 24.2.2.1 DataView (buffer, byteOffset, byteLength ) 12 13 ... 14 12. Let O be ? OrdinaryCreateFromConstructor(NewTarget, "%DataViewPrototype%", 15 « [[DataView]], [[ViewedArrayBuffer]], [[ByteLength]], [[ByteOffset]] »). 16 ... 17 17. Return O. 18 19 9.1.13 OrdinaryCreateFromConstructor ( constructor, intrinsicDefaultProto [ , 20 internalSlotsList ] ) 21 22 ... 23 3. Return ObjectCreate(proto, internalSlotsList). 24 25 9.1.12 ObjectCreate (proto [ , internalSlotsList ]) 26 27 ... 28 5. Set the [[Extensible]] internal slot of obj to true. 29 ... 30 features: [SharedArrayBuffer] 31 includes: [propertyHelper.js] 32 ---*/ 33 34 var buffer = new SharedArrayBuffer(8); 35 var sample = new DataView(buffer, 0); 36 37 assert(Object.isExtensible(sample)); 38 39 Object.defineProperty(sample, 'baz', {}); 40 assert(sample.hasOwnProperty('baz'), 'confirms extensibility adding a new property'); 41 42 Object.defineProperty(sample, 'foo', { 43 value: 'bar', 44 writable: true, 45 configurable: true, 46 enumerable: false, 47 }); 48 49 verifyProperty(sample, 'foo', { 50 value: 'bar', 51 writable: true, 52 configurable: true, 53 enumerable: false, 54 }); 55 56 reportCompare(0, 0);