Implement DataView.prototype.{set, get}Big{U}int64 methods (#4315)

Co-authored by Adam Szilagyi aszilagy@inf.u-szeged.hu

JerryScript-DCO-1.0-Signed-off-by: Csaba Osztrogonác csaba.osztrogonac@h-lab.eu
This commit is contained in:
Csaba Osztrogonác
2020-10-28 11:46:52 +01:00
committed by GitHub
parent 2007188373
commit 3115d4dc16
7 changed files with 77 additions and 48 deletions
+14
View File
@@ -194,6 +194,8 @@ buffer = new ArrayBuffer (24);
view1 = new DataView (buffer);
view2 = new DataView (buffer, 4, 12);
view3 = new DataView (buffer, 6, 18);
view4 = new DataView (buffer);
view5 = new DataView (buffer);
view1.setUint8 (0, 255);
validateResult(view1, 0, false, [-1, 255, -256, 65280, -16777216, 4278190080, -1.7014118346046924e+38, -5.486124068793689e+303]);
@@ -219,6 +221,18 @@ validateResult(view3, 4, true, [65, 65, 2113, 2113, 2113, 2113, 2.96094365511833
validateResult(view2, 4, false, [-48, 208, -12110, 53426, -793624312, 3501342984, -23924850688, -5.411000515087672e+80]);
validateResult(view2, 4, true, [-48, 208, -19760, 45776, 138523344, 138523344, 5.828901796903399e-34, 6.84396254e-316]);
view4.setBigInt64 (0, 2n);
assert(view4.getBigInt64(0) === 2n);
view4.setBigInt64 (1, -2n);
assert(view4.getBigInt64(1) === -2n);
assert(view4.getBigUint64(1) === 18446744073709551614n);
view5.setBigUint64 (0, 2n);
assert(view5.getBigUint64(0) === 2n);
view5.setBigUint64 (1, -2n);
assert(view5.getBigUint64(1) === 18446744073709551614n);
assert(view5.getBigInt64(1) === -2n);
/* Second and third arguments can be "undefined" and there should be no error. */
var arrayBufferOk = new ArrayBuffer (12);
-38
View File
@@ -34,44 +34,6 @@
<test id="built-ins/BigInt/asUintN/length.js"><reason></reason></test>
<test id="built-ins/BigInt/asUintN/name.js"><reason></reason></test>
<test id="built-ins/BigInt/asUintN/order-of-steps.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/index-is-out-of-range.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/length.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/name.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/negative-byteoffset-throws.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/return-abrupt-from-tonumber-byteoffset.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/return-value-clean-arraybuffer.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/return-values-custom-offset.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/return-values.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/to-boolean-littleendian.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/toindex-byteoffset-errors.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/toindex-byteoffset-toprimitive.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/toindex-byteoffset-wrapped-values.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigInt64/toindex-byteoffset.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/index-is-out-of-range.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/length.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/name.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/negative-byteoffset-throws.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/return-abrupt-from-tonumber-byteoffset.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/return-value-clean-arraybuffer.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/return-values-custom-offset.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/return-values.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/to-boolean-littleendian.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/toindex-byteoffset-errors.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/toindex-byteoffset-toprimitive.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/toindex-byteoffset-wrapped-values.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/getBigUint64/toindex-byteoffset.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/index-check-before-value-conversion.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/index-is-out-of-range.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/length.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/name.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/negative-byteoffset-throws.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/range-check-after-value-conversion.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/return-abrupt-from-tobigint-value.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/return-abrupt-from-tonumber-byteoffset.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/set-values-little-endian-order.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/set-values-return-undefined.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/to-boolean-littleendian.js"><reason></reason></test>
<test id="built-ins/DataView/prototype/setBigInt64/toindex-byteoffset.js"><reason></reason></test>
<test id="built-ins/Date/prototype/setTime/new-value-time-clip.js"><reason></reason></test>
<test id="built-ins/Date/prototype/toDateString/format.js"><reason></reason></test>
<test id="built-ins/Date/prototype/toDateString/negative-year.js"><reason></reason></test>