tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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);