Chromium Code Reviews| 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 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 287 } | 287 } |
| 288 | 288 |
| 289 function TestSetters() { | 289 function TestSetters() { |
| 290 runIntegerTestCases(false, initialArray, 0, 16); | 290 runIntegerTestCases(false, initialArray, 0, 16); |
| 291 runFloatTestCases(false); | 291 runFloatTestCases(false); |
| 292 | 292 |
| 293 runIntegerTestCases(false, initialArray, 3, 2); | 293 runIntegerTestCases(false, initialArray, 3, 2); |
| 294 runFloatTestCases(false, 7); | 294 runFloatTestCases(false, 7); |
| 295 | 295 |
| 296 runNegativeIndexTests(false); | 296 runNegativeIndexTests(false); |
| 297 | |
| 298 } | 297 } |
| 299 | 298 |
| 300 TestGetters(); | 299 TestGetters(); |
| 301 TestSetters(); | 300 TestSetters(); |
| 302 | 301 |
| 302 function CheckOutOfRange(typename, value, expected) { | |
|
titzer
2013/07/12 16:37:02
Mmmm...jsiness. Could we have a version of this te
Dmitry Lomov (no reviews)
2013/07/12 18:22:45
Done.
| |
| 303 var view = new DataView(new ArrayBuffer(100)); | |
| 304 assertSame(undefined, view["set" + typename](0, value)); | |
| 305 assertSame(expected, view["get" + typename](0)); | |
| 306 assertSame(undefined, view["set" + typename](0, value, true)); | |
| 307 assertSame(expected, view["get" + typename](0, true)); | |
| 308 } | |
| 309 | |
| 310 function TestOutOfRange() { | |
| 311 CheckOutOfRange("Int8", 0x80, -0x80); | |
| 312 CheckOutOfRange("Int8", 0x1000, 0); | |
| 313 CheckOutOfRange("Int8", -0x81, 0x7F); | |
| 314 | |
| 315 CheckOutOfRange("Uint8", 0x100, 0); | |
| 316 CheckOutOfRange("Uint8", 0x1000, 0); | |
| 317 CheckOutOfRange("Uint8", -0x80, 0x80); | |
| 318 CheckOutOfRange("Uint8", -1, 0xFF); | |
| 319 CheckOutOfRange("Uint8", -0xFF, 1); | |
| 320 | |
| 321 CheckOutOfRange("Int16", 0x8000, -0x8000); | |
| 322 CheckOutOfRange("Int16", 0x10000, 0); | |
| 323 CheckOutOfRange("Int16", -0x8001, 0x7FFF); | |
| 324 | |
| 325 CheckOutOfRange("Uint16", 0x10000, 0); | |
| 326 CheckOutOfRange("Uint16", 0x100000, 0); | |
| 327 CheckOutOfRange("Uint16", -0x8000, 0x8000); | |
| 328 CheckOutOfRange("Uint16", -1, 0xFFFF); | |
| 329 CheckOutOfRange("Uint16", -0xFFFF, 1); | |
| 330 | |
| 331 CheckOutOfRange("Int32", 0x80000000, -0x80000000); | |
| 332 CheckOutOfRange("Int32", 0x100000000, 0); | |
| 333 CheckOutOfRange("Int32", -0x80000001, 0x7FFFFFFF); | |
| 334 | |
| 335 CheckOutOfRange("Uint32", 0x100000000, 0); | |
| 336 CheckOutOfRange("Uint32", 0x1000000000, 0); | |
| 337 CheckOutOfRange("Uint32", -0x80000000, 0x80000000); | |
| 338 CheckOutOfRange("Uint32", -1, 0xFFFFFFFF); | |
| 339 CheckOutOfRange("Uint32", -0xFFFFFFFF, 1); | |
| 340 } | |
| 341 | |
| 342 TestOutOfRange(); | |
| 343 | |
| 303 function TestGeneralAccessors() { | 344 function TestGeneralAccessors() { |
| 304 var a = new DataView(new ArrayBuffer(256)); | 345 var a = new DataView(new ArrayBuffer(256)); |
| 305 function CheckAccessor(name) { | 346 function CheckAccessor(name) { |
| 306 var f = a[name]; | 347 var f = a[name]; |
| 307 assertThrows(function() { f(); }, TypeError); | 348 assertThrows(function() { f(); }, TypeError); |
| 308 f.call(a, 0, 0); // should not throw | 349 f.call(a, 0, 0); // should not throw |
| 309 assertThrows(function() { f.call({}, 0, 0); }, TypeError); | 350 assertThrows(function() { f.call({}, 0, 0); }, TypeError); |
| 310 assertThrows(function() { f.call(a); }, TypeError); | 351 assertThrows(function() { f.call(a); }, TypeError); |
| 311 } | 352 } |
| 312 CheckAccessor("getUint8"); | 353 CheckAccessor("getUint8"); |
| 313 CheckAccessor("setUint8"); | 354 CheckAccessor("setUint8"); |
| 314 CheckAccessor("getInt8"); | 355 CheckAccessor("getInt8"); |
| 315 CheckAccessor("setInt8"); | 356 CheckAccessor("setInt8"); |
| 316 CheckAccessor("getUint16"); | 357 CheckAccessor("getUint16"); |
| 317 CheckAccessor("setUint16"); | 358 CheckAccessor("setUint16"); |
| 318 CheckAccessor("getInt16"); | 359 CheckAccessor("getInt16"); |
| 319 CheckAccessor("setInt16"); | 360 CheckAccessor("setInt16"); |
| 320 CheckAccessor("getUint32"); | 361 CheckAccessor("getUint32"); |
| 321 CheckAccessor("setUint32"); | 362 CheckAccessor("setUint32"); |
| 322 CheckAccessor("getInt32"); | 363 CheckAccessor("getInt32"); |
| 323 CheckAccessor("setInt32"); | 364 CheckAccessor("setInt32"); |
| 324 CheckAccessor("getFloat32"); | 365 CheckAccessor("getFloat32"); |
| 325 CheckAccessor("setFloat32"); | 366 CheckAccessor("setFloat32"); |
| 326 CheckAccessor("getFloat64"); | 367 CheckAccessor("getFloat64"); |
| 327 CheckAccessor("setFloat64"); | 368 CheckAccessor("setFloat64"); |
| 328 } | 369 } |
| 329 | 370 |
| 330 TestGeneralAccessors(); | 371 TestGeneralAccessors(); |
| OLD | NEW |