toindex-length.js (2635B)
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) 2016 Mozilla Corporation. All rights reserved. 4 // This code is governed by the BSD license found in the LICENSE file. 5 6 /*--- 7 esid: sec-sharedarraybuffer-length 8 description: > 9 The `length` parameter is converted to a value numeric index value. 10 info: | 11 SharedArrayBuffer( length ) 12 13 1. If NewTarget is undefined, throw a TypeError exception. 14 2. Let byteLength be ? ToIndex(length). 15 3. Return ? AllocateSharedArrayBuffer(NewTarget, byteLength). 16 17 ToIndex( value ) 18 19 1. If value is undefined, then 20 a. Let index be 0. 21 2. Else, 22 a. Let integerIndex be ? ToInteger(value). 23 b. If integerIndex < 0, throw a RangeError exception. 24 c. Let index be ! ToLength(integerIndex). 25 d. If SameValueZero(integerIndex, index) is false, throw a RangeError exception. 26 3. Return index. 27 features: [SharedArrayBuffer] 28 ---*/ 29 30 var obj1 = { 31 valueOf: function() { 32 return 42; 33 } 34 }; 35 36 var obj2 = { 37 toString: function() { 38 return 42; 39 } 40 }; 41 42 var buffer; 43 44 buffer = new SharedArrayBuffer(obj1); 45 assert.sameValue(buffer.byteLength, 42, "object's valueOf"); 46 47 buffer = new SharedArrayBuffer(obj2); 48 assert.sameValue(buffer.byteLength, 42, "object's toString"); 49 50 buffer = new SharedArrayBuffer(""); 51 assert.sameValue(buffer.byteLength, 0, "the Empty string"); 52 53 buffer = new SharedArrayBuffer("0"); 54 assert.sameValue(buffer.byteLength, 0, "string '0'"); 55 56 buffer = new SharedArrayBuffer("1"); 57 assert.sameValue(buffer.byteLength, 1, "string '1'"); 58 59 buffer = new SharedArrayBuffer(true); 60 assert.sameValue(buffer.byteLength, 1, "true"); 61 62 buffer = new SharedArrayBuffer(false); 63 assert.sameValue(buffer.byteLength, 0, "false"); 64 65 buffer = new SharedArrayBuffer(NaN); 66 assert.sameValue(buffer.byteLength, 0, "NaN"); 67 68 buffer = new SharedArrayBuffer(null); 69 assert.sameValue(buffer.byteLength, 0, "null"); 70 71 buffer = new SharedArrayBuffer(undefined); 72 assert.sameValue(buffer.byteLength, 0, "undefined"); 73 74 buffer = new SharedArrayBuffer(0.1); 75 assert.sameValue(buffer.byteLength, 0, "0.1"); 76 77 buffer = new SharedArrayBuffer(0.9); 78 assert.sameValue(buffer.byteLength, 0, "0.9"); 79 80 buffer = new SharedArrayBuffer(1.1); 81 assert.sameValue(buffer.byteLength, 1, "1.1"); 82 83 buffer = new SharedArrayBuffer(1.9); 84 assert.sameValue(buffer.byteLength, 1, "1.9"); 85 86 buffer = new SharedArrayBuffer(-0.1); 87 assert.sameValue(buffer.byteLength, 0, "-0.1"); 88 89 buffer = new SharedArrayBuffer(-0.99999); 90 assert.sameValue(buffer.byteLength, 0, "-0.99999"); 91 92 reportCompare(0, 0);