detached-buffer.js (844B)
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-dataview-buffer-byteoffset-bytelength 6 description: > 7 Throws a TypeError if buffer is detached 8 info: | 9 24.2.2.1 DataView (buffer, byteOffset, byteLength ) 10 11 ... 12 4. Let numberOffset be ? ToNumber(byteOffset). 13 ... 14 7. If IsDetachedBuffer(buffer) is true, throw a TypeError exception. 15 ... 16 includes: [detachArrayBuffer.js] 17 ---*/ 18 19 var toNumberOffset = 0; 20 var obj = { 21 valueOf: function() { 22 toNumberOffset += 1; 23 return 0; 24 } 25 }; 26 27 var ab = new ArrayBuffer(42); 28 $DETACHBUFFER(ab); 29 30 assert.throws(TypeError, function() { 31 new DataView(ab, obj); 32 }, "throws if buffer is detached"); 33 34 assert.sameValue(toNumberOffset, 1, "ToNumber(byteOffset) runs before"); 35 36 reportCompare(0, 0);