| 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 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 252 | 252 |
| 253 function ToPositiveDataViewOffset(offset) { | 253 function ToPositiveDataViewOffset(offset) { |
| 254 return ToPositiveInteger(offset, 'invalid_data_view_accessor_offset'); | 254 return ToPositiveInteger(offset, 'invalid_data_view_accessor_offset'); |
| 255 } | 255 } |
| 256 | 256 |
| 257 function DataViewGetInt8(offset, little_endian) { | 257 function DataViewGetInt8(offset, little_endian) { |
| 258 if (!IS_DATAVIEW(this)) { | 258 if (!IS_DATAVIEW(this)) { |
| 259 throw MakeTypeError('incompatible_method_reciever', | 259 throw MakeTypeError('incompatible_method_reciever', |
| 260 ['DataView.getInt8', this]); | 260 ['DataView.getInt8', this]); |
| 261 } | 261 } |
| 262 if (%_ArgumentsLength() < 1) { |
| 263 throw MakeTypeError('invalid_argument'); |
| 264 } |
| 262 return %DataViewGetInt8(this, | 265 return %DataViewGetInt8(this, |
| 263 ToPositiveDataViewOffset(offset), | 266 ToPositiveDataViewOffset(offset), |
| 264 !!little_endian); | 267 !!little_endian); |
| 265 } | 268 } |
| 266 | 269 |
| 267 function DataViewSetInt8(offset, value, little_endian) { | 270 function DataViewSetInt8(offset, value, little_endian) { |
| 268 if (!IS_DATAVIEW(this)) { | 271 if (!IS_DATAVIEW(this)) { |
| 269 throw MakeTypeError('incompatible_method_reciever', | 272 throw MakeTypeError('incompatible_method_reciever', |
| 270 ['DataView.setInt8', this]); | 273 ['DataView.setInt8', this]); |
| 271 } | 274 } |
| 275 if (%_ArgumentsLength() < 1) { |
| 276 throw MakeTypeError('invalid_argument'); |
| 277 } |
| 272 %DataViewSetInt8(this, | 278 %DataViewSetInt8(this, |
| 273 ToPositiveDataViewOffset(offset), | 279 ToPositiveDataViewOffset(offset), |
| 274 TO_NUMBER_INLINE(value), | 280 TO_NUMBER_INLINE(value), |
| 275 !!little_endian); | 281 !!little_endian); |
| 276 } | 282 } |
| 277 | 283 |
| 278 function DataViewGetUint8(offset, little_endian) { | 284 function DataViewGetUint8(offset, little_endian) { |
| 279 if (!IS_DATAVIEW(this)) { | 285 if (!IS_DATAVIEW(this)) { |
| 280 throw MakeTypeError('incompatible_method_reciever', | 286 throw MakeTypeError('incompatible_method_reciever', |
| 281 ['DataView.getUint8', this]); | 287 ['DataView.getUint8', this]); |
| 282 } | 288 } |
| 289 if (%_ArgumentsLength() < 1) { |
| 290 throw MakeTypeError('invalid_argument'); |
| 291 } |
| 283 return %DataViewGetUint8(this, | 292 return %DataViewGetUint8(this, |
| 284 ToPositiveDataViewOffset(offset), | 293 ToPositiveDataViewOffset(offset), |
| 285 !!little_endian); | 294 !!little_endian); |
| 286 } | 295 } |
| 287 | 296 |
| 288 function DataViewSetUint8(offset, value, little_endian) { | 297 function DataViewSetUint8(offset, value, little_endian) { |
| 289 if (!IS_DATAVIEW(this)) { | 298 if (!IS_DATAVIEW(this)) { |
| 290 throw MakeTypeError('incompatible_method_reciever', | 299 throw MakeTypeError('incompatible_method_reciever', |
| 291 ['DataView.setUint8', this]); | 300 ['DataView.setUint8', this]); |
| 292 } | 301 } |
| 302 if (%_ArgumentsLength() < 1) { |
| 303 throw MakeTypeError('invalid_argument'); |
| 304 } |
| 293 %DataViewSetUint8(this, | 305 %DataViewSetUint8(this, |
| 294 ToPositiveDataViewOffset(offset), | 306 ToPositiveDataViewOffset(offset), |
| 295 TO_NUMBER_INLINE(value), | 307 TO_NUMBER_INLINE(value), |
| 296 !!little_endian); | 308 !!little_endian); |
| 297 } | 309 } |
| 298 | 310 |
| 299 function DataViewGetInt16(offset, little_endian) { | 311 function DataViewGetInt16(offset, little_endian) { |
| 300 if (!IS_DATAVIEW(this)) { | 312 if (!IS_DATAVIEW(this)) { |
| 301 throw MakeTypeError('incompatible_method_reciever', | 313 throw MakeTypeError('incompatible_method_reciever', |
| 302 ['DataView.getInt16', this]); | 314 ['DataView.getInt16', this]); |
| 303 } | 315 } |
| 316 if (%_ArgumentsLength() < 1) { |
| 317 throw MakeTypeError('invalid_argument'); |
| 318 } |
| 304 return %DataViewGetInt16(this, | 319 return %DataViewGetInt16(this, |
| 305 ToPositiveDataViewOffset(offset), | 320 ToPositiveDataViewOffset(offset), |
| 306 !!little_endian); | 321 !!little_endian); |
| 307 } | 322 } |
| 308 | 323 |
| 309 function DataViewSetInt16(offset, value, little_endian) { | 324 function DataViewSetInt16(offset, value, little_endian) { |
| 310 if (!IS_DATAVIEW(this)) { | 325 if (!IS_DATAVIEW(this)) { |
| 311 throw MakeTypeError('incompatible_method_reciever', | 326 throw MakeTypeError('incompatible_method_reciever', |
| 312 ['DataView.setInt16', this]); | 327 ['DataView.setInt16', this]); |
| 313 } | 328 } |
| 329 if (%_ArgumentsLength() < 1) { |
| 330 throw MakeTypeError('invalid_argument'); |
| 331 } |
| 314 %DataViewSetInt16(this, | 332 %DataViewSetInt16(this, |
| 315 ToPositiveDataViewOffset(offset), | 333 ToPositiveDataViewOffset(offset), |
| 316 TO_NUMBER_INLINE(value), | 334 TO_NUMBER_INLINE(value), |
| 317 !!little_endian); | 335 !!little_endian); |
| 318 } | 336 } |
| 319 | 337 |
| 320 function DataViewGetUint16(offset, little_endian) { | 338 function DataViewGetUint16(offset, little_endian) { |
| 321 if (!IS_DATAVIEW(this)) { | 339 if (!IS_DATAVIEW(this)) { |
| 322 throw MakeTypeError('incompatible_method_reciever', | 340 throw MakeTypeError('incompatible_method_reciever', |
| 323 ['DataView.getUint16', this]); | 341 ['DataView.getUint16', this]); |
| 324 } | 342 } |
| 343 if (%_ArgumentsLength() < 1) { |
| 344 throw MakeTypeError('invalid_argument'); |
| 345 } |
| 325 return %DataViewGetUint16(this, | 346 return %DataViewGetUint16(this, |
| 326 ToPositiveDataViewOffset(offset), | 347 ToPositiveDataViewOffset(offset), |
| 327 !!little_endian); | 348 !!little_endian); |
| 328 } | 349 } |
| 329 | 350 |
| 330 function DataViewSetUint16(offset, value, little_endian) { | 351 function DataViewSetUint16(offset, value, little_endian) { |
| 331 if (!IS_DATAVIEW(this)) { | 352 if (!IS_DATAVIEW(this)) { |
| 332 throw MakeTypeError('incompatible_method_reciever', | 353 throw MakeTypeError('incompatible_method_reciever', |
| 333 ['DataView.setUint16', this]); | 354 ['DataView.setUint16', this]); |
| 334 } | 355 } |
| 356 if (%_ArgumentsLength() < 1) { |
| 357 throw MakeTypeError('invalid_argument'); |
| 358 } |
| 335 %DataViewSetUint16(this, | 359 %DataViewSetUint16(this, |
| 336 ToPositiveDataViewOffset(offset), | 360 ToPositiveDataViewOffset(offset), |
| 337 TO_NUMBER_INLINE(value), | 361 TO_NUMBER_INLINE(value), |
| 338 !!little_endian); | 362 !!little_endian); |
| 339 } | 363 } |
| 340 | 364 |
| 341 function DataViewGetInt32(offset, little_endian) { | 365 function DataViewGetInt32(offset, little_endian) { |
| 342 if (!IS_DATAVIEW(this)) { | 366 if (!IS_DATAVIEW(this)) { |
| 343 throw MakeTypeError('incompatible_method_reciever', | 367 throw MakeTypeError('incompatible_method_reciever', |
| 344 ['DataView.getInt32', this]); | 368 ['DataView.getInt32', this]); |
| 345 } | 369 } |
| 370 if (%_ArgumentsLength() < 1) { |
| 371 throw MakeTypeError('invalid_argument'); |
| 372 } |
| 346 return %DataViewGetInt32(this, | 373 return %DataViewGetInt32(this, |
| 347 ToPositiveDataViewOffset(offset), | 374 ToPositiveDataViewOffset(offset), |
| 348 !!little_endian); | 375 !!little_endian); |
| 349 } | 376 } |
| 350 | 377 |
| 351 function DataViewSetInt32(offset, value, little_endian) { | 378 function DataViewSetInt32(offset, value, little_endian) { |
| 352 if (!IS_DATAVIEW(this)) { | 379 if (!IS_DATAVIEW(this)) { |
| 353 throw MakeTypeError('incompatible_method_reciever', | 380 throw MakeTypeError('incompatible_method_reciever', |
| 354 ['DataView.setInt32', this]); | 381 ['DataView.setInt32', this]); |
| 355 } | 382 } |
| 383 if (%_ArgumentsLength() < 2) { |
| 384 throw MakeTypeError('invalid_argument'); |
| 385 } |
| 356 %DataViewSetInt32(this, | 386 %DataViewSetInt32(this, |
| 357 ToPositiveDataViewOffset(offset), | 387 ToPositiveDataViewOffset(offset), |
| 358 TO_NUMBER_INLINE(value), | 388 TO_NUMBER_INLINE(value), |
| 359 !!little_endian); | 389 !!little_endian); |
| 360 } | 390 } |
| 361 | 391 |
| 362 function DataViewGetUint32(offset, little_endian) { | 392 function DataViewGetUint32(offset, little_endian) { |
| 363 if (!IS_DATAVIEW(this)) { | 393 if (!IS_DATAVIEW(this)) { |
| 364 throw MakeTypeError('incompatible_method_reciever', | 394 throw MakeTypeError('incompatible_method_reciever', |
| 365 ['DataView.getUint32', this]); | 395 ['DataView.getUint32', this]); |
| 366 } | 396 } |
| 397 if (%_ArgumentsLength() < 1) { |
| 398 throw MakeTypeError('invalid_argument'); |
| 399 } |
| 367 return %DataViewGetUint32(this, | 400 return %DataViewGetUint32(this, |
| 368 ToPositiveDataViewOffset(offset), | 401 ToPositiveDataViewOffset(offset), |
| 369 !!little_endian); | 402 !!little_endian); |
| 370 } | 403 } |
| 371 | 404 |
| 372 function DataViewSetUint32(offset, value, little_endian) { | 405 function DataViewSetUint32(offset, value, little_endian) { |
| 373 if (!IS_DATAVIEW(this)) { | 406 if (!IS_DATAVIEW(this)) { |
| 374 throw MakeTypeError('incompatible_method_reciever', | 407 throw MakeTypeError('incompatible_method_reciever', |
| 375 ['DataView.setUint32', this]); | 408 ['DataView.setUint32', this]); |
| 376 } | 409 } |
| 410 if (%_ArgumentsLength() < 1) { |
| 411 throw MakeTypeError('invalid_argument'); |
| 412 } |
| 377 %DataViewSetUint32(this, | 413 %DataViewSetUint32(this, |
| 378 ToPositiveDataViewOffset(offset), | 414 ToPositiveDataViewOffset(offset), |
| 379 TO_NUMBER_INLINE(value), | 415 TO_NUMBER_INLINE(value), |
| 380 !!little_endian); | 416 !!little_endian); |
| 381 } | 417 } |
| 382 | 418 |
| 383 function DataViewGetFloat32(offset, little_endian) { | 419 function DataViewGetFloat32(offset, little_endian) { |
| 384 if (!IS_DATAVIEW(this)) { | 420 if (!IS_DATAVIEW(this)) { |
| 385 throw MakeTypeError('incompatible_method_reciever', | 421 throw MakeTypeError('incompatible_method_reciever', |
| 386 ['DataView.getFloat32', this]); | 422 ['DataView.getFloat32', this]); |
| 387 } | 423 } |
| 424 if (%_ArgumentsLength() < 1) { |
| 425 throw MakeTypeError('invalid_argument'); |
| 426 } |
| 388 return %DataViewGetFloat32(this, | 427 return %DataViewGetFloat32(this, |
| 389 ToPositiveDataViewOffset(offset), | 428 ToPositiveDataViewOffset(offset), |
| 390 !!little_endian); | 429 !!little_endian); |
| 391 } | 430 } |
| 392 | 431 |
| 393 function DataViewSetFloat32(offset, value, little_endian) { | 432 function DataViewSetFloat32(offset, value, little_endian) { |
| 394 if (!IS_DATAVIEW(this)) { | 433 if (!IS_DATAVIEW(this)) { |
| 395 throw MakeTypeError('incompatible_method_reciever', | 434 throw MakeTypeError('incompatible_method_reciever', |
| 396 ['DataView.setFloat32', this]); | 435 ['DataView.setFloat32', this]); |
| 397 } | 436 } |
| 437 if (%_ArgumentsLength() < 1) { |
| 438 throw MakeTypeError('invalid_argument'); |
| 439 } |
| 398 %DataViewSetFloat32(this, | 440 %DataViewSetFloat32(this, |
| 399 ToPositiveDataViewOffset(offset), | 441 ToPositiveDataViewOffset(offset), |
| 400 TO_NUMBER_INLINE(value), | 442 TO_NUMBER_INLINE(value), |
| 401 !!little_endian); | 443 !!little_endian); |
| 402 } | 444 } |
| 403 | 445 |
| 404 function DataViewGetFloat64(offset, little_endian) { | 446 function DataViewGetFloat64(offset, little_endian) { |
| 405 if (!IS_DATAVIEW(this)) { | 447 if (!IS_DATAVIEW(this)) { |
| 406 throw MakeTypeError('incompatible_method_reciever', | 448 throw MakeTypeError('incompatible_method_reciever', |
| 407 ['DataView.getFloat64', this]); | 449 ['DataView.getFloat64', this]); |
| 408 } | 450 } |
| 409 offset = TO_INTEGER(offset); | 451 if (%_ArgumentsLength() < 1) { |
| 410 if (offset < 0) { | 452 throw MakeTypeError('invalid_argument'); |
| 411 throw MakeRangeError("invalid_data_view_accessor_offset"); | |
| 412 } | 453 } |
| 413 return %DataViewGetFloat64(this, | 454 return %DataViewGetFloat64(this, |
| 414 ToPositiveDataViewOffset(offset), | 455 ToPositiveDataViewOffset(offset), |
| 415 !!little_endian); | 456 !!little_endian); |
| 416 } | 457 } |
| 417 | 458 |
| 418 function DataViewSetFloat64(offset, value, little_endian) { | 459 function DataViewSetFloat64(offset, value, little_endian) { |
| 419 if (!IS_DATAVIEW(this)) { | 460 if (!IS_DATAVIEW(this)) { |
| 420 throw MakeTypeError('incompatible_method_reciever', | 461 throw MakeTypeError('incompatible_method_reciever', |
| 421 ['DataView.setFloat64', this]); | 462 ['DataView.setFloat64', this]); |
| 422 } | 463 } |
| 423 offset = TO_INTEGER(offset); | 464 if (%_ArgumentsLength() < 1) { |
| 424 if (offset < 0) { | 465 throw MakeTypeError('invalid_argument'); |
| 425 throw MakeRangeError("invalid_data_view_accessor_offset"); | |
| 426 } | 466 } |
| 427 %DataViewSetFloat64(this, | 467 %DataViewSetFloat64(this, |
| 428 ToPositiveDataViewOffset(offset), | 468 ToPositiveDataViewOffset(offset), |
| 429 TO_NUMBER_INLINE(value), | 469 TO_NUMBER_INLINE(value), |
| 430 !!little_endian); | 470 !!little_endian); |
| 431 } | 471 } |
| 432 | 472 |
| 433 function SetupDataView() { | 473 function SetupDataView() { |
| 434 %CheckIsBootstrapping(); | 474 %CheckIsBootstrapping(); |
| 435 | 475 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 465 | 505 |
| 466 "getFloat32", DataViewGetFloat32, | 506 "getFloat32", DataViewGetFloat32, |
| 467 "setFloat32", DataViewSetFloat32, | 507 "setFloat32", DataViewSetFloat32, |
| 468 | 508 |
| 469 "getFloat64", DataViewGetFloat64, | 509 "getFloat64", DataViewGetFloat64, |
| 470 "setFloat64", DataViewSetFloat64 | 510 "setFloat64", DataViewSetFloat64 |
| 471 )); | 511 )); |
| 472 } | 512 } |
| 473 | 513 |
| 474 SetupDataView(); | 514 SetupDataView(); |
| OLD | NEW |