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