OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 TestOutOfRange(); | 382 TestOutOfRange(); |
383 | 383 |
384 function TestGeneralAccessors() { | 384 function TestGeneralAccessors() { |
385 var a = new DataView(new ArrayBuffer(256)); | 385 var a = new DataView(new ArrayBuffer(256)); |
386 function CheckAccessor(name) { | 386 function CheckAccessor(name) { |
387 var f = a[name]; | 387 var f = a[name]; |
388 assertThrows(function() { f(); }, TypeError); | 388 assertThrows(function() { f(); }, TypeError); |
389 f.call(a, 0, 0); // should not throw | 389 f.call(a, 0, 0); // should not throw |
390 assertThrows(function() { f.call({}, 0, 0); }, TypeError); | 390 assertThrows(function() { f.call({}, 0, 0); }, TypeError); |
391 assertThrows(function() { f.call(a); }, TypeError); | 391 assertThrows(function() { f.call(a); }, TypeError); |
| 392 if (name.indexOf("set") == 0) { |
| 393 assertThrows(function() { f.call(a, 1); }, TypeError); |
| 394 } else { |
| 395 f.call(a, 1); // should not throw |
| 396 } |
392 } | 397 } |
393 CheckAccessor("getUint8"); | 398 CheckAccessor("getUint8"); |
394 CheckAccessor("setUint8"); | 399 CheckAccessor("setUint8"); |
395 CheckAccessor("getInt8"); | 400 CheckAccessor("getInt8"); |
396 CheckAccessor("setInt8"); | 401 CheckAccessor("setInt8"); |
397 CheckAccessor("getUint16"); | 402 CheckAccessor("getUint16"); |
398 CheckAccessor("setUint16"); | 403 CheckAccessor("setUint16"); |
399 CheckAccessor("getInt16"); | 404 CheckAccessor("getInt16"); |
400 CheckAccessor("setInt16"); | 405 CheckAccessor("setInt16"); |
401 CheckAccessor("getUint32"); | 406 CheckAccessor("getUint32"); |
402 CheckAccessor("setUint32"); | 407 CheckAccessor("setUint32"); |
403 CheckAccessor("getInt32"); | 408 CheckAccessor("getInt32"); |
404 CheckAccessor("setInt32"); | 409 CheckAccessor("setInt32"); |
405 CheckAccessor("getFloat32"); | 410 CheckAccessor("getFloat32"); |
406 CheckAccessor("setFloat32"); | 411 CheckAccessor("setFloat32"); |
407 CheckAccessor("getFloat64"); | 412 CheckAccessor("getFloat64"); |
408 CheckAccessor("setFloat64"); | 413 CheckAccessor("setFloat64"); |
409 } | 414 } |
410 | 415 |
411 TestGeneralAccessors(); | 416 TestGeneralAccessors(); |
| 417 |
| 418 function TestInsufficientArguments() { |
| 419 var a = new DataView(new ArrayBuffer(256)); |
| 420 |
| 421 assertThrows(function() { a.getUint8(); }, TypeError); |
| 422 assertThrows(function() { a.getInt8(); }, TypeError); |
| 423 assertThrows(function() { a.getUint16(); }, TypeError); |
| 424 assertThrows(function() { a.getInt16(); }, TypeError); |
| 425 assertThrows(function() { a.getUint32(); }, TypeError); |
| 426 assertThrows(function() { a.getInt32(); }, TypeError); |
| 427 assertThrows(function() { a.getFloat32(); }, TypeError); |
| 428 assertThrows(function() { a.getFloat64(); }, TypeError); |
| 429 |
| 430 assertThrows(function() { a.setUint8(); }, TypeError); |
| 431 assertThrows(function() { a.setInt8(); }, TypeError); |
| 432 assertThrows(function() { a.setUint16(); }, TypeError); |
| 433 assertThrows(function() { a.setInt16(); }, TypeError); |
| 434 assertThrows(function() { a.setUint32(); }, TypeError); |
| 435 assertThrows(function() { a.setInt32(); }, TypeError); |
| 436 assertThrows(function() { a.setFloat32(); }, TypeError); |
| 437 assertThrows(function() { a.setFloat64(); }, TypeError); |
| 438 |
| 439 assertThrows(function() { a.setUint8(1) }, TypeError); |
| 440 assertThrows(function() { a.setInt8(1) }, TypeError); |
| 441 assertThrows(function() { a.setUint16(1) }, TypeError); |
| 442 assertThrows(function() { a.setInt16(1) }, TypeError); |
| 443 assertThrows(function() { a.setUint32(1) }, TypeError); |
| 444 assertThrows(function() { a.setInt32(1) }, TypeError); |
| 445 assertThrows(function() { a.setFloat32(1) }, TypeError); |
| 446 assertThrows(function() { a.setFloat64(1) }, TypeError); |
| 447 } |
| 448 |
| 449 TestInsufficientArguments(); |
OLD | NEW |