summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/data-view.tq
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/builtins/data-view.tq')
-rw-r--r--deps/v8/src/builtins/data-view.tq951
1 files changed, 427 insertions, 524 deletions
diff --git a/deps/v8/src/builtins/data-view.tq b/deps/v8/src/builtins/data-view.tq
index 874c122995..1e86f88d83 100644
--- a/deps/v8/src/builtins/data-view.tq
+++ b/deps/v8/src/builtins/data-view.tq
@@ -3,15 +3,14 @@
// found in the LICENSE file.
module data_view {
-
extern operator '.buffer'
- macro LoadArrayBufferViewBuffer(JSArrayBufferView): JSArrayBuffer;
+ macro LoadJSArrayBufferViewBuffer(JSArrayBufferView): JSArrayBuffer;
extern operator '.byte_length'
- macro LoadDataViewByteLength(JSDataView): Number;
+ macro LoadJSArrayBufferViewByteLength(JSArrayBufferView): uintptr;
extern operator '.byte_offset'
- macro LoadDataViewByteOffset(JSDataView): Number;
+ macro LoadJSArrayBufferViewByteOffset(JSArrayBufferView): uintptr;
extern operator '.backing_store'
- macro LoadArrayBufferBackingStore(JSArrayBuffer): RawPtr;
+ macro LoadJSArrayBufferBackingStore(JSArrayBuffer): RawPtr;
macro MakeDataViewGetterNameString(kind: constexpr ElementsKind): String {
if constexpr (kind == UINT8_ELEMENTS) {
@@ -69,10 +68,10 @@ module data_view {
return IsDetachedBuffer(view.buffer);
}
- macro ValidateDataView(context: Context,
- o: Object, method: String): JSDataView {
+ macro ValidateDataView(
+ context: Context, o: Object, method: String): JSDataView {
try {
- return cast<JSDataView>(o) otherwise CastError;
+ return Cast<JSDataView>(o) otherwise CastError;
}
label CastError {
ThrowTypeError(context, kIncompatibleMethodReceiver, method);
@@ -82,35 +81,35 @@ module data_view {
// ES6 section 24.2.4.1 get DataView.prototype.buffer
javascript builtin DataViewPrototypeGetBuffer(
context: Context, receiver: Object, ...arguments): JSArrayBuffer {
- let data_view: JSDataView = ValidateDataView(
- context, receiver, 'get DataView.prototype.buffer');
- return data_view.buffer;
+ let dataView: JSDataView =
+ ValidateDataView(context, receiver, 'get DataView.prototype.buffer');
+ return dataView.buffer;
}
// ES6 section 24.2.4.2 get DataView.prototype.byteLength
javascript builtin DataViewPrototypeGetByteLength(
context: Context, receiver: Object, ...arguments): Number {
- let data_view: JSDataView = ValidateDataView(
+ let dataView: JSDataView = ValidateDataView(
context, receiver, 'get DataView.prototype.byte_length');
- if (WasNeutered(data_view)) {
+ if (WasNeutered(dataView)) {
// TODO(bmeurer): According to the ES6 spec, we should throw a TypeError
- // here if the JSArrayBuffer of the {data_view} was neutered.
+ // here if the JSArrayBuffer of the {dataView} was neutered.
return 0;
}
- return data_view.byte_length;
+ return Convert<Number>(dataView.byte_length);
}
// ES6 section 24.2.4.3 get DataView.prototype.byteOffset
javascript builtin DataViewPrototypeGetByteOffset(
context: Context, receiver: Object, ...arguments): Number {
- let data_view: JSDataView = ValidateDataView(
+ let dataView: JSDataView = ValidateDataView(
context, receiver, 'get DataView.prototype.byte_offset');
- if (WasNeutered(data_view)) {
+ if (WasNeutered(dataView)) {
// TODO(bmeurer): According to the ES6 spec, we should throw a TypeError
- // here if the JSArrayBuffer of the {data_view} was neutered.
+ // here if the JSArrayBuffer of the {dataView} was neutered.
return 0;
}
- return data_view.byte_offset;
+ return Convert<Number>(dataView.byte_offset);
}
extern macro BitcastInt32ToFloat32(uint32): float32;
@@ -120,109 +119,110 @@ module data_view {
extern macro Float64InsertLowWord32(float64, uint32): float64;
extern macro Float64InsertHighWord32(float64, uint32): float64;
- extern macro LoadUint8(RawPtr, intptr): uint32;
- extern macro LoadInt8(RawPtr, intptr): int32;
+ extern macro LoadUint8(RawPtr, uintptr): uint32;
+ extern macro LoadInt8(RawPtr, uintptr): int32;
- macro LoadDataView8(buffer: JSArrayBuffer, offset: intptr,
- signed: constexpr bool): Smi {
+ macro LoadDataView8(
+ buffer: JSArrayBuffer, offset: uintptr, signed: constexpr bool): Smi {
if constexpr (signed) {
- return convert<Smi>(LoadInt8(buffer.backing_store, offset));
+ return Convert<Smi>(LoadInt8(buffer.backing_store, offset));
} else {
- return convert<Smi>(LoadUint8(buffer.backing_store, offset));
+ return Convert<Smi>(LoadUint8(buffer.backing_store, offset));
}
}
- macro LoadDataView16(buffer: JSArrayBuffer, offset: intptr,
- requested_little_endian: bool,
- signed: constexpr bool): Number {
- let data_pointer: RawPtr = buffer.backing_store;
+ macro LoadDataView16(
+ buffer: JSArrayBuffer, offset: uintptr, requestedLittleEndian: bool,
+ signed: constexpr bool): Number {
+ let dataPointer: RawPtr = buffer.backing_store;
let b0: int32;
let b1: int32;
let result: int32;
// Sign-extend the most significant byte by loading it as an Int8.
- if (requested_little_endian) {
- b0 = Signed(LoadUint8(data_pointer, offset));
- b1 = LoadInt8(data_pointer, offset + 1);
+ if (requestedLittleEndian) {
+ b0 = Signed(LoadUint8(dataPointer, offset));
+ b1 = LoadInt8(dataPointer, offset + 1);
result = (b1 << 8) + b0;
} else {
- b0 = LoadInt8(data_pointer, offset);
- b1 = Signed(LoadUint8(data_pointer, offset + 1));
+ b0 = LoadInt8(dataPointer, offset);
+ b1 = Signed(LoadUint8(dataPointer, offset + 1));
result = (b0 << 8) + b1;
}
if constexpr (signed) {
- return convert<Smi>(result);
+ return Convert<Smi>(result);
} else {
// Bit-mask the higher bits to prevent sign extension if we're unsigned.
- return convert<Smi>(result & 0xFFFF);
+ return Convert<Smi>(result & 0xFFFF);
}
}
- macro LoadDataView32(buffer: JSArrayBuffer, offset: intptr,
- requested_little_endian: bool,
- kind: constexpr ElementsKind): Number {
- let data_pointer: RawPtr = buffer.backing_store;
+ macro LoadDataView32(
+ buffer: JSArrayBuffer, offset: uintptr, requestedLittleEndian: bool,
+ kind: constexpr ElementsKind): Number {
+ let dataPointer: RawPtr = buffer.backing_store;
- let b0: uint32 = LoadUint8(data_pointer, offset);
- let b1: uint32 = LoadUint8(data_pointer, offset + 1);
- let b2: uint32 = LoadUint8(data_pointer, offset + 2);
- let b3: uint32 = LoadUint8(data_pointer, offset + 3);
+ let b0: uint32 = LoadUint8(dataPointer, offset);
+ let b1: uint32 = LoadUint8(dataPointer, offset + 1);
+ let b2: uint32 = LoadUint8(dataPointer, offset + 2);
+ let b3: uint32 = LoadUint8(dataPointer, offset + 3);
let result: uint32;
- if (requested_little_endian) {
+ if (requestedLittleEndian) {
result = (b3 << 24) | (b2 << 16) | (b1 << 8) | b0;
} else {
result = (b0 << 24) | (b1 << 16) | (b2 << 8) | b3;
}
if constexpr (kind == INT32_ELEMENTS) {
- return convert<Number>(Signed(result));
+ return Convert<Number>(Signed(result));
} else if constexpr (kind == UINT32_ELEMENTS) {
- return convert<Number>(result);
+ return Convert<Number>(result);
} else if constexpr (kind == FLOAT32_ELEMENTS) {
- let float_res: float64 = convert<float64>(BitcastInt32ToFloat32(result));
- return convert<Number>(float_res);
+ let floatRes: float64 = Convert<float64>(BitcastInt32ToFloat32(result));
+ return Convert<Number>(floatRes);
} else {
unreachable;
}
}
- macro LoadDataViewFloat64(buffer: JSArrayBuffer, offset: intptr,
- requested_little_endian: bool): Number {
- let data_pointer: RawPtr = buffer.backing_store;
-
- let b0: uint32 = LoadUint8(data_pointer, offset);
- let b1: uint32 = LoadUint8(data_pointer, offset + 1);
- let b2: uint32 = LoadUint8(data_pointer, offset + 2);
- let b3: uint32 = LoadUint8(data_pointer, offset + 3);
- let b4: uint32 = LoadUint8(data_pointer, offset + 4);
- let b5: uint32 = LoadUint8(data_pointer, offset + 5);
- let b6: uint32 = LoadUint8(data_pointer, offset + 6);
- let b7: uint32 = LoadUint8(data_pointer, offset + 7);
- let low_word: uint32;
- let high_word: uint32;
-
- if (requested_little_endian) {
- low_word = (b3 << 24) | (b2 << 16) | (b1 << 8) | b0;
- high_word = (b7 << 24) | (b6 << 16) | (b5 << 8) | b4;
+ macro LoadDataViewFloat64(
+ buffer: JSArrayBuffer, offset: uintptr,
+ requestedLittleEndian: bool): Number {
+ let dataPointer: RawPtr = buffer.backing_store;
+
+ let b0: uint32 = LoadUint8(dataPointer, offset);
+ let b1: uint32 = LoadUint8(dataPointer, offset + 1);
+ let b2: uint32 = LoadUint8(dataPointer, offset + 2);
+ let b3: uint32 = LoadUint8(dataPointer, offset + 3);
+ let b4: uint32 = LoadUint8(dataPointer, offset + 4);
+ let b5: uint32 = LoadUint8(dataPointer, offset + 5);
+ let b6: uint32 = LoadUint8(dataPointer, offset + 6);
+ let b7: uint32 = LoadUint8(dataPointer, offset + 7);
+ let lowWord: uint32;
+ let highWord: uint32;
+
+ if (requestedLittleEndian) {
+ lowWord = (b3 << 24) | (b2 << 16) | (b1 << 8) | b0;
+ highWord = (b7 << 24) | (b6 << 16) | (b5 << 8) | b4;
} else {
- high_word = (b0 << 24) | (b1 << 16) | (b2 << 8) | b3;
- low_word = (b4 << 24) | (b5 << 16) | (b6 << 8) | b7;
+ highWord = (b0 << 24) | (b1 << 16) | (b2 << 8) | b3;
+ lowWord = (b4 << 24) | (b5 << 16) | (b6 << 8) | b7;
}
let result: float64 = 0;
- result = Float64InsertLowWord32(result, low_word);
- result = Float64InsertHighWord32(result, high_word);
+ result = Float64InsertLowWord32(result, lowWord);
+ result = Float64InsertHighWord32(result, highWord);
- return convert<Number>(result);
+ return Convert<Number>(result);
}
extern macro AllocateBigInt(intptr): BigInt;
extern macro StoreBigIntBitfield(BigInt, intptr): void;
extern macro StoreBigIntDigit(BigInt, constexpr int31, uintptr): void;
- extern macro DataViewEncodeBigIntBits(constexpr bool,
- constexpr int31): intptr;
+ extern macro DataViewEncodeBigIntBits(
+ constexpr bool, constexpr int31): intptr;
const kPositiveBigInt: constexpr bool = false;
const kNegativeBigInt: constexpr bool = true;
@@ -230,173 +230,168 @@ module data_view {
const kOneDigitBigInt: constexpr int31 = 1;
const kTwoDigitBigInt: constexpr int31 = 2;
- macro CreateEmptyBigInt(is_positive: bool, length: constexpr int31): BigInt {
+ macro CreateEmptyBigInt(isPositive: bool, length: constexpr int31): BigInt {
// Allocate a BigInt with the desired length (number of digits).
let result: BigInt = AllocateBigInt(length);
// Write the desired sign and length to the BigInt bitfield.
- if (is_positive) {
- StoreBigIntBitfield(result,
- DataViewEncodeBigIntBits(kPositiveBigInt, length));
+ if (isPositive) {
+ StoreBigIntBitfield(
+ result, DataViewEncodeBigIntBits(kPositiveBigInt, length));
} else {
- StoreBigIntBitfield(result,
- DataViewEncodeBigIntBits(kNegativeBigInt, length));
+ StoreBigIntBitfield(
+ result, DataViewEncodeBigIntBits(kNegativeBigInt, length));
}
return result;
}
// Create a BigInt on a 64-bit architecture from two 32-bit values.
- macro MakeBigIntOn64Bit(low_word: uint32, high_word: uint32,
- signed: constexpr bool): BigInt {
-
+ macro MakeBigIntOn64Bit(
+ lowWord: uint32, highWord: uint32, signed: constexpr bool): BigInt {
// 0n is represented by a zero-length BigInt.
- if (low_word == 0 && high_word == 0) {
+ if (lowWord == 0 && highWord == 0) {
return AllocateBigInt(kZeroDigitBigInt);
}
- let is_positive: bool = true;
- let high_part: intptr = Signed(convert<uintptr>(high_word));
- let low_part: intptr = Signed(convert<uintptr>(low_word));
- let raw_value: intptr = (high_part << 32) + low_part;
+ let isPositive: bool = true;
+ let highPart: intptr = Signed(Convert<uintptr>(highWord));
+ let lowPart: intptr = Signed(Convert<uintptr>(lowWord));
+ let rawValue: intptr = (highPart << 32) + lowPart;
if constexpr (signed) {
- if (raw_value < 0) {
- is_positive = false;
- // We have to store the absolute value of raw_value in the digit.
- raw_value = 0 - raw_value;
+ if (rawValue < 0) {
+ isPositive = false;
+ // We have to store the absolute value of rawValue in the digit.
+ rawValue = 0 - rawValue;
}
}
// Allocate the BigInt and store the absolute value.
- let result: BigInt = CreateEmptyBigInt(is_positive, kOneDigitBigInt);
+ let result: BigInt = CreateEmptyBigInt(isPositive, kOneDigitBigInt);
- StoreBigIntDigit(result, 0, Unsigned(raw_value));
+ StoreBigIntDigit(result, 0, Unsigned(rawValue));
return result;
}
// Create a BigInt on a 32-bit architecture from two 32-bit values.
- macro MakeBigIntOn32Bit(low_word: uint32, high_word: uint32,
- signed: constexpr bool): BigInt {
-
+ macro MakeBigIntOn32Bit(
+ lowWord: uint32, highWord: uint32, signed: constexpr bool): BigInt {
// 0n is represented by a zero-length BigInt.
- if (low_word == 0 && high_word == 0) {
+ if (lowWord == 0 && highWord == 0) {
return AllocateBigInt(kZeroDigitBigInt);
}
// On a 32-bit platform, we might need 1 or 2 digits to store the number.
- let need_two_digits: bool = false;
- let is_positive: bool = true;
+ let needTwoDigits: bool = false;
+ let isPositive: bool = true;
- // We need to do some math on low_word and high_word,
- // so convert them to int32.
- let low_part: int32 = Signed(low_word);
- let high_part: int32 = Signed(high_word);
+ // We need to do some math on lowWord and highWord,
+ // so Convert them to int32.
+ let lowPart: int32 = Signed(lowWord);
+ let highPart: int32 = Signed(highWord);
- // If high_word == 0, the number is positive, and we only need 1 digit,
+ // If highWord == 0, the number is positive, and we only need 1 digit,
// so we don't have anything to do.
// Otherwise, all cases are possible.
- if (high_word != 0) {
+ if (highWord != 0) {
if constexpr (signed) {
-
- // If high_part < 0, the number is always negative.
- if (high_part < 0) {
- is_positive = false;
+ // If highPart < 0, the number is always negative.
+ if (highPart < 0) {
+ isPositive = false;
// We have to compute the absolute value by hand.
// There will be a negative carry from the low word
// to the high word iff low != 0.
- high_part = 0 - high_part;
- if (low_part != 0) {
- high_part = high_part - 1;
+ highPart = 0 - highPart;
+ if (lowPart != 0) {
+ highPart = highPart - 1;
}
- low_part = 0 - low_part;
+ lowPart = 0 - lowPart;
- // Here, high_part could be 0 again so we might have 1 or 2 digits.
- if (high_part != 0) {
- need_two_digits = true;
+ // Here, highPart could be 0 again so we might have 1 or 2 digits.
+ if (highPart != 0) {
+ needTwoDigits = true;
}
} else {
// In this case, the number is positive, and we need 2 digits.
- need_two_digits = true;
+ needTwoDigits = true;
}
} else {
// In this case, the number is positive (unsigned),
// and we need 2 digits.
- need_two_digits = true;
+ needTwoDigits = true;
}
}
// Allocate the BigInt with the right sign and length.
let result: BigInt;
- if (need_two_digits) {
- result = CreateEmptyBigInt(is_positive, kTwoDigitBigInt);
+ if (needTwoDigits) {
+ result = CreateEmptyBigInt(isPositive, kTwoDigitBigInt);
} else {
- result = CreateEmptyBigInt(is_positive, kOneDigitBigInt);
+ result = CreateEmptyBigInt(isPositive, kOneDigitBigInt);
}
// Finally, write the digit(s) to the BigInt.
- StoreBigIntDigit(result, 0, Unsigned(convert<intptr>(low_part)));
+ StoreBigIntDigit(result, 0, Unsigned(Convert<intptr>(lowPart)));
- if (need_two_digits) {
- StoreBigIntDigit(result, 1, Unsigned(convert<intptr>(high_part)));
+ if (needTwoDigits) {
+ StoreBigIntDigit(result, 1, Unsigned(Convert<intptr>(highPart)));
}
return result;
}
- macro MakeBigInt(low_word: uint32, high_word: uint32,
- signed: constexpr bool): BigInt {
+ macro MakeBigInt(
+ lowWord: uint32, highWord: uint32, signed: constexpr bool): BigInt {
// A BigInt digit has the platform word size, so we only need one digit
// on 64-bit platforms but may need two on 32-bit.
if constexpr (Is64()) {
- return MakeBigIntOn64Bit(low_word, high_word, signed);
+ return MakeBigIntOn64Bit(lowWord, highWord, signed);
} else {
- return MakeBigIntOn32Bit(low_word, high_word, signed);
+ return MakeBigIntOn32Bit(lowWord, highWord, signed);
}
}
- macro LoadDataViewBigInt(buffer: JSArrayBuffer, offset: intptr,
- requested_little_endian: bool,
- signed: constexpr bool): BigInt {
- let data_pointer: RawPtr = buffer.backing_store;
-
- let b0: uint32 = LoadUint8(data_pointer, offset);
- let b1: uint32 = LoadUint8(data_pointer, offset + 1);
- let b2: uint32 = LoadUint8(data_pointer, offset + 2);
- let b3: uint32 = LoadUint8(data_pointer, offset + 3);
- let b4: uint32 = LoadUint8(data_pointer, offset + 4);
- let b5: uint32 = LoadUint8(data_pointer, offset + 5);
- let b6: uint32 = LoadUint8(data_pointer, offset + 6);
- let b7: uint32 = LoadUint8(data_pointer, offset + 7);
- let low_word: uint32;
- let high_word: uint32;
-
- if (requested_little_endian) {
- low_word = (b3 << 24) | (b2 << 16) | (b1 << 8) | b0;
- high_word = (b7 << 24) | (b6 << 16) | (b5 << 8) | b4;
+ macro LoadDataViewBigInt(
+ buffer: JSArrayBuffer, offset: uintptr, requestedLittleEndian: bool,
+ signed: constexpr bool): BigInt {
+ let dataPointer: RawPtr = buffer.backing_store;
+
+ let b0: uint32 = LoadUint8(dataPointer, offset);
+ let b1: uint32 = LoadUint8(dataPointer, offset + 1);
+ let b2: uint32 = LoadUint8(dataPointer, offset + 2);
+ let b3: uint32 = LoadUint8(dataPointer, offset + 3);
+ let b4: uint32 = LoadUint8(dataPointer, offset + 4);
+ let b5: uint32 = LoadUint8(dataPointer, offset + 5);
+ let b6: uint32 = LoadUint8(dataPointer, offset + 6);
+ let b7: uint32 = LoadUint8(dataPointer, offset + 7);
+ let lowWord: uint32;
+ let highWord: uint32;
+
+ if (requestedLittleEndian) {
+ lowWord = (b3 << 24) | (b2 << 16) | (b1 << 8) | b0;
+ highWord = (b7 << 24) | (b6 << 16) | (b5 << 8) | b4;
} else {
- high_word = (b0 << 24) | (b1 << 16) | (b2 << 8) | b3;
- low_word = (b4 << 24) | (b5 << 16) | (b6 << 8) | b7;
+ highWord = (b0 << 24) | (b1 << 16) | (b2 << 8) | b3;
+ lowWord = (b4 << 24) | (b5 << 16) | (b6 << 8) | b7;
}
- return MakeBigInt(low_word, high_word, signed);
+ return MakeBigInt(lowWord, highWord, signed);
}
- extern macro ToSmiIndex(Object, Context): Smi labels RangeError;
+ extern macro ToSmiIndex(Object, Context): Smi
+ labels RangeError;
extern macro DataViewElementSize(constexpr ElementsKind): constexpr int31;
- macro DataViewGet(context: Context,
- receiver: Object,
- offset: Object,
- requested_little_endian: Object,
- kind: constexpr ElementsKind): Numeric {
-
- let data_view: JSDataView = ValidateDataView(
- context, receiver, MakeDataViewGetterNameString(kind));
+ macro DataViewGet(
+ context: Context, receiver: Object, offset: Object,
+ requestedLittleEndian: Object, kind: constexpr ElementsKind): Numeric {
+ let dataView: JSDataView =
+ ValidateDataView(context, receiver, MakeDataViewGetterNameString(kind));
let getIndex: Number;
try {
@@ -406,28 +401,26 @@ module data_view {
ThrowRangeError(context, kInvalidDataViewAccessorOffset);
}
- let littleEndian: bool = ToBoolean(requested_little_endian);
- let buffer: JSArrayBuffer = data_view.buffer;
+ let littleEndian: bool = ToBoolean(requestedLittleEndian);
+ let buffer: JSArrayBuffer = dataView.buffer;
if (IsDetachedBuffer(buffer)) {
- ThrowTypeError(context, kDetachedOperation,
- MakeDataViewGetterNameString(kind));
+ ThrowTypeError(
+ context, kDetachedOperation, MakeDataViewGetterNameString(kind));
}
- let viewOffset: Number = data_view.byte_offset;
- let viewSize: Number = data_view.byte_length;
- let elementSize: Number = DataViewElementSize(kind);
+ let getIndexFloat: float64 = Convert<float64>(getIndex);
+ let getIndexWord: uintptr = Convert<uintptr>(getIndexFloat);
- if (getIndex + elementSize > viewSize) {
+ let viewOffsetWord: uintptr = dataView.byte_offset;
+ let viewSizeFloat: float64 = Convert<float64>(dataView.byte_length);
+ let elementSizeFloat: float64 = Convert<float64>(DataViewElementSize(kind));
+
+ if (getIndexFloat + elementSizeFloat > viewSizeFloat) {
ThrowRangeError(context, kInvalidDataViewAccessorOffset);
}
- let getIndexFloat: float64 = convert<float64>(getIndex);
- let getIndexIntptr: intptr = Signed(convert<uintptr>(getIndexFloat));
- let viewOffsetFloat: float64 = convert<float64>(viewOffset);
- let viewOffsetIntptr: intptr = Signed(convert<uintptr>(viewOffsetFloat));
-
- let bufferIndex: intptr = getIndexIntptr + viewOffsetIntptr;
+ let bufferIndex: uintptr = getIndexWord + viewOffsetWord;
if constexpr (kind == UINT8_ELEMENTS) {
return LoadDataView8(buffer, bufferIndex, false);
@@ -455,201 +448,173 @@ module data_view {
}
javascript builtin DataViewPrototypeGetUint8(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- return DataViewGet(context, receiver, offset, Undefined, UINT8_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ return DataViewGet(context, receiver, offset, Undefined, UINT8_ELEMENTS);
+ }
javascript builtin DataViewPrototypeGetInt8(
context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
return DataViewGet(context, receiver, offset, Undefined, INT8_ELEMENTS);
}
javascript builtin DataViewPrototypeGetUint16(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let is_little_endian : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewGet(context, receiver, offset, is_little_endian,
- UINT16_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewGet(
+ context, receiver, offset, isLittleEndian, UINT16_ELEMENTS);
+ }
javascript builtin DataViewPrototypeGetInt16(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let is_little_endian : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewGet(context, receiver, offset, is_little_endian,
- INT16_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewGet(
+ context, receiver, offset, isLittleEndian, INT16_ELEMENTS);
+ }
javascript builtin DataViewPrototypeGetUint32(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let is_little_endian : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewGet(context, receiver, offset, is_little_endian,
- UINT32_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewGet(
+ context, receiver, offset, isLittleEndian, UINT32_ELEMENTS);
+ }
javascript builtin DataViewPrototypeGetInt32(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let is_little_endian : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewGet(context, receiver, offset, is_little_endian,
- INT32_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewGet(
+ context, receiver, offset, isLittleEndian, INT32_ELEMENTS);
+ }
javascript builtin DataViewPrototypeGetFloat32(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let is_little_endian : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewGet(context, receiver, offset, is_little_endian,
- FLOAT32_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewGet(
+ context, receiver, offset, isLittleEndian, FLOAT32_ELEMENTS);
+ }
javascript builtin DataViewPrototypeGetFloat64(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let is_little_endian : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewGet(context, receiver, offset, is_little_endian,
- FLOAT64_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewGet(
+ context, receiver, offset, isLittleEndian, FLOAT64_ELEMENTS);
+ }
javascript builtin DataViewPrototypeGetBigUint64(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let is_little_endian : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewGet(context, receiver, offset, is_little_endian,
- BIGUINT64_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewGet(
+ context, receiver, offset, isLittleEndian, BIGUINT64_ELEMENTS);
+ }
javascript builtin DataViewPrototypeGetBigInt64(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let is_little_endian : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewGet(context, receiver, offset, is_little_endian,
- BIGINT64_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewGet(
+ context, receiver, offset, isLittleEndian, BIGINT64_ELEMENTS);
+ }
extern macro ToNumber(Context, Object): Number;
extern macro ToBigInt(Context, Object): BigInt;
extern macro TruncateFloat64ToFloat32(float64): float32;
extern macro TruncateFloat64ToWord32(float64): uint32;
- extern macro StoreWord8(RawPtr, intptr, uint32): void;
+ extern macro StoreWord8(RawPtr, uintptr, uint32): void;
- macro StoreDataView8(buffer: JSArrayBuffer, offset: intptr,
- value: uint32) {
+ macro StoreDataView8(buffer: JSArrayBuffer, offset: uintptr, value: uint32) {
StoreWord8(buffer.backing_store, offset, value & 0xFF);
}
- macro StoreDataView16(buffer: JSArrayBuffer, offset: intptr, value: uint32,
- requested_little_endian: bool) {
- let data_pointer: RawPtr = buffer.backing_store;
+ macro StoreDataView16(
+ buffer: JSArrayBuffer, offset: uintptr, value: uint32,
+ requestedLittleEndian: bool) {
+ let dataPointer: RawPtr = buffer.backing_store;
let b0: uint32 = value & 0xFF;
let b1: uint32 = (value >>> 8) & 0xFF;
- if (requested_little_endian) {
- StoreWord8(data_pointer, offset, b0);
- StoreWord8(data_pointer, offset + 1, b1);
+ if (requestedLittleEndian) {
+ StoreWord8(dataPointer, offset, b0);
+ StoreWord8(dataPointer, offset + 1, b1);
} else {
- StoreWord8(data_pointer, offset, b1);
- StoreWord8(data_pointer, offset + 1, b0);
+ StoreWord8(dataPointer, offset, b1);
+ StoreWord8(dataPointer, offset + 1, b0);
}
}
- macro StoreDataView32(buffer: JSArrayBuffer, offset: intptr, value: uint32,
- requested_little_endian: bool) {
- let data_pointer: RawPtr = buffer.backing_store;
+ macro StoreDataView32(
+ buffer: JSArrayBuffer, offset: uintptr, value: uint32,
+ requestedLittleEndian: bool) {
+ let dataPointer: RawPtr = buffer.backing_store;
let b0: uint32 = value & 0xFF;
let b1: uint32 = (value >>> 8) & 0xFF;
let b2: uint32 = (value >>> 16) & 0xFF;
- let b3: uint32 = value >>> 24; // We don't need to mask here.
+ let b3: uint32 = value >>> 24; // We don't need to mask here.
- if (requested_little_endian) {
- StoreWord8(data_pointer, offset, b0);
- StoreWord8(data_pointer, offset + 1, b1);
- StoreWord8(data_pointer, offset + 2, b2);
- StoreWord8(data_pointer, offset + 3, b3);
+ if (requestedLittleEndian) {
+ StoreWord8(dataPointer, offset, b0);
+ StoreWord8(dataPointer, offset + 1, b1);
+ StoreWord8(dataPointer, offset + 2, b2);
+ StoreWord8(dataPointer, offset + 3, b3);
} else {
- StoreWord8(data_pointer, offset, b3);
- StoreWord8(data_pointer, offset + 1, b2);
- StoreWord8(data_pointer, offset + 2, b1);
- StoreWord8(data_pointer, offset + 3, b0);
- }
- }
-
- macro StoreDataView64(buffer: JSArrayBuffer, offset: intptr,
- low_word: uint32, high_word: uint32,
- requested_little_endian: bool) {
- let data_pointer: RawPtr = buffer.backing_store;
-
- let b0: uint32 = low_word & 0xFF;
- let b1: uint32 = (low_word >>> 8) & 0xFF;
- let b2: uint32 = (low_word >>> 16) & 0xFF;
- let b3: uint32 = low_word >>> 24;
-
- let b4: uint32 = high_word & 0xFF;
- let b5: uint32 = (high_word >>> 8) & 0xFF;
- let b6: uint32 = (high_word >>> 16) & 0xFF;
- let b7: uint32 = high_word >>> 24;
-
-
- if (requested_little_endian) {
- StoreWord8(data_pointer, offset, b0);
- StoreWord8(data_pointer, offset + 1, b1);
- StoreWord8(data_pointer, offset + 2, b2);
- StoreWord8(data_pointer, offset + 3, b3);
- StoreWord8(data_pointer, offset + 4, b4);
- StoreWord8(data_pointer, offset + 5, b5);
- StoreWord8(data_pointer, offset + 6, b6);
- StoreWord8(data_pointer, offset + 7, b7);
+ StoreWord8(dataPointer, offset, b3);
+ StoreWord8(dataPointer, offset + 1, b2);
+ StoreWord8(dataPointer, offset + 2, b1);
+ StoreWord8(dataPointer, offset + 3, b0);
+ }
+ }
+
+ macro StoreDataView64(
+ buffer: JSArrayBuffer, offset: uintptr, lowWord: uint32, highWord: uint32,
+ requestedLittleEndian: bool) {
+ let dataPointer: RawPtr = buffer.backing_store;
+
+ let b0: uint32 = lowWord & 0xFF;
+ let b1: uint32 = (lowWord >>> 8) & 0xFF;
+ let b2: uint32 = (lowWord >>> 16) & 0xFF;
+ let b3: uint32 = lowWord >>> 24;
+
+ let b4: uint32 = highWord & 0xFF;
+ let b5: uint32 = (highWord >>> 8) & 0xFF;
+ let b6: uint32 = (highWord >>> 16) & 0xFF;
+ let b7: uint32 = highWord >>> 24;
+
+ if (requestedLittleEndian) {
+ StoreWord8(dataPointer, offset, b0);
+ StoreWord8(dataPointer, offset + 1, b1);
+ StoreWord8(dataPointer, offset + 2, b2);
+ StoreWord8(dataPointer, offset + 3, b3);
+ StoreWord8(dataPointer, offset + 4, b4);
+ StoreWord8(dataPointer, offset + 5, b5);
+ StoreWord8(dataPointer, offset + 6, b6);
+ StoreWord8(dataPointer, offset + 7, b7);
} else {
- StoreWord8(data_pointer, offset, b7);
- StoreWord8(data_pointer, offset + 1, b6);
- StoreWord8(data_pointer, offset + 2, b5);
- StoreWord8(data_pointer, offset + 3, b4);
- StoreWord8(data_pointer, offset + 4, b3);
- StoreWord8(data_pointer, offset + 5, b2);
- StoreWord8(data_pointer, offset + 6, b1);
- StoreWord8(data_pointer, offset + 7, b0);
+ StoreWord8(dataPointer, offset, b7);
+ StoreWord8(dataPointer, offset + 1, b6);
+ StoreWord8(dataPointer, offset + 2, b5);
+ StoreWord8(dataPointer, offset + 3, b4);
+ StoreWord8(dataPointer, offset + 4, b3);
+ StoreWord8(dataPointer, offset + 5, b2);
+ StoreWord8(dataPointer, offset + 6, b1);
+ StoreWord8(dataPointer, offset + 7, b0);
}
}
@@ -660,55 +625,48 @@ module data_view {
// We might get here a BigInt that is bigger than 64 bits, but we're only
// interested in the 64 lowest ones. This means the lowest BigInt digit
// on 64-bit platforms, and the 2 lowest BigInt digits on 32-bit ones.
- macro StoreDataViewBigInt(buffer: JSArrayBuffer, offset: intptr,
- bigint_value: BigInt,
- requested_little_endian: bool) {
-
- let length: uintptr = DataViewDecodeBigIntLength(bigint_value);
- let sign: uintptr = DataViewDecodeBigIntSign(bigint_value);
+ macro StoreDataViewBigInt(
+ buffer: JSArrayBuffer, offset: uintptr, bigIntValue: BigInt,
+ requestedLittleEndian: bool) {
+ let length: uintptr = DataViewDecodeBigIntLength(bigIntValue);
+ let sign: uintptr = DataViewDecodeBigIntSign(bigIntValue);
// The 32-bit words that will hold the BigInt's value in
// two's complement representation.
- let low_word: uint32 = 0;
- let high_word: uint32 = 0;
+ let lowWord: uint32 = 0;
+ let highWord: uint32 = 0;
// The length is nonzero if and only if the BigInt's value is nonzero.
if (length != 0) {
if constexpr (Is64()) {
// There is always exactly 1 BigInt digit to load in this case.
- let value: uintptr = LoadBigIntDigit(bigint_value, 0);
- low_word = convert<uint32>(value); // Truncates value to 32 bits.
- high_word = convert<uint32>(value >>> 32);
- }
- else { // There might be either 1 or 2 BigInt digits we need to load.
- low_word = convert<uint32>(LoadBigIntDigit(bigint_value, 0));
- if (length >= 2) { // Only load the second digit if there is one.
- high_word = convert<uint32>(LoadBigIntDigit(bigint_value, 1));
+ let value: uintptr = LoadBigIntDigit(bigIntValue, 0);
+ lowWord = Convert<uint32>(value); // Truncates value to 32 bits.
+ highWord = Convert<uint32>(value >>> 32);
+ } else { // There might be either 1 or 2 BigInt digits we need to load.
+ lowWord = Convert<uint32>(LoadBigIntDigit(bigIntValue, 0));
+ if (length >= 2) { // Only load the second digit if there is one.
+ highWord = Convert<uint32>(LoadBigIntDigit(bigIntValue, 1));
}
}
}
- if (sign != 0) { // The number is negative, convert it.
- high_word = Unsigned(0 - Signed(high_word));
- if (low_word != 0) {
- high_word = Unsigned(Signed(high_word) - 1);
+ if (sign != 0) { // The number is negative, Convert it.
+ highWord = Unsigned(0 - Signed(highWord));
+ if (lowWord != 0) {
+ highWord = Unsigned(Signed(highWord) - 1);
}
- low_word = Unsigned(0 - Signed(low_word));
+ lowWord = Unsigned(0 - Signed(lowWord));
}
- StoreDataView64(buffer, offset, low_word, high_word,
- requested_little_endian);
+ StoreDataView64(buffer, offset, lowWord, highWord, requestedLittleEndian);
}
- macro DataViewSet(context: Context,
- receiver: Object,
- offset: Object,
- value: Object,
- requested_little_endian: Object,
- kind: constexpr ElementsKind): Object {
-
- let data_view: JSDataView = ValidateDataView(
- context, receiver, MakeDataViewSetterNameString(kind));
+ macro DataViewSet(
+ context: Context, receiver: Object, offset: Object, value: Object,
+ requestedLittleEndian: Object, kind: constexpr ElementsKind): Object {
+ let dataView: JSDataView =
+ ValidateDataView(context, receiver, MakeDataViewSetterNameString(kind));
let getIndex: Number;
try {
@@ -718,215 +676,160 @@ module data_view {
ThrowRangeError(context, kInvalidDataViewAccessorOffset);
}
- let littleEndian: bool = ToBoolean(requested_little_endian);
- let buffer: JSArrayBuffer = data_view.buffer;
+ let littleEndian: bool = ToBoolean(requestedLittleEndian);
+ let buffer: JSArrayBuffer = dataView.buffer;
- let bigint_value: BigInt;
- let num_value: Number;
+ let bigIntValue: BigInt;
+ let numValue: Number;
// According to ES6 section 24.2.1.2 SetViewValue, we must perform
// the conversion before doing the bounds check.
if constexpr (kind == BIGUINT64_ELEMENTS || kind == BIGINT64_ELEMENTS) {
- bigint_value = ToBigInt(context, value);
+ bigIntValue = ToBigInt(context, value);
} else {
- num_value = ToNumber(context, value);
+ numValue = ToNumber(context, value);
}
if (IsDetachedBuffer(buffer)) {
- ThrowTypeError(context, kDetachedOperation,
- MakeDataViewSetterNameString(kind));
+ ThrowTypeError(
+ context, kDetachedOperation, MakeDataViewSetterNameString(kind));
}
- let viewOffset: Number = data_view.byte_offset;
- let viewSize: Number = data_view.byte_length;
- let elementSize: Number = DataViewElementSize(kind);
+ let getIndexFloat: float64 = Convert<float64>(getIndex);
+ let getIndexWord: uintptr = Convert<uintptr>(getIndexFloat);
+
+ let viewOffsetWord: uintptr = dataView.byte_offset;
+ let viewSizeFloat: float64 = Convert<float64>(dataView.byte_length);
+ let elementSizeFloat: float64 = Convert<float64>(DataViewElementSize(kind));
- if (getIndex + elementSize > viewSize) {
+ if (getIndexFloat + elementSizeFloat > viewSizeFloat) {
ThrowRangeError(context, kInvalidDataViewAccessorOffset);
}
- let getIndexFloat: float64 = convert<float64>(getIndex);
- let getIndexIntptr: intptr = Signed(convert<uintptr>(getIndexFloat));
- let viewOffsetFloat: float64 = convert<float64>(viewOffset);
- let viewOffsetIntptr: intptr = Signed(convert<uintptr>(viewOffsetFloat));
-
- let bufferIndex: intptr = getIndexIntptr + viewOffsetIntptr;
+ let bufferIndex: uintptr = getIndexWord + viewOffsetWord;
if constexpr (kind == BIGUINT64_ELEMENTS || kind == BIGINT64_ELEMENTS) {
- StoreDataViewBigInt(buffer, bufferIndex, bigint_value,
- littleEndian);
- }
- else {
- let double_value: float64 = ChangeNumberToFloat64(num_value);
+ StoreDataViewBigInt(buffer, bufferIndex, bigIntValue, littleEndian);
+ } else {
+ let doubleValue: float64 = ChangeNumberToFloat64(numValue);
if constexpr (kind == UINT8_ELEMENTS || kind == INT8_ELEMENTS) {
- StoreDataView8(buffer, bufferIndex,
- TruncateFloat64ToWord32(double_value));
- }
- else if constexpr (kind == UINT16_ELEMENTS || kind == INT16_ELEMENTS) {
- StoreDataView16(buffer, bufferIndex,
- TruncateFloat64ToWord32(double_value), littleEndian);
- }
- else if constexpr (kind == UINT32_ELEMENTS || kind == INT32_ELEMENTS) {
- StoreDataView32(buffer, bufferIndex,
- TruncateFloat64ToWord32(double_value), littleEndian);
- }
- else if constexpr (kind == FLOAT32_ELEMENTS) {
- let float_value: float32 = TruncateFloat64ToFloat32(double_value);
- StoreDataView32(buffer, bufferIndex,
- BitcastFloat32ToInt32(float_value), littleEndian);
- }
- else if constexpr (kind == FLOAT64_ELEMENTS) {
- let low_word: uint32 = Float64ExtractLowWord32(double_value);
- let high_word: uint32 = Float64ExtractHighWord32(double_value);
- StoreDataView64(buffer, bufferIndex, low_word, high_word,
- littleEndian);
+ StoreDataView8(
+ buffer, bufferIndex, TruncateFloat64ToWord32(doubleValue));
+ } else if constexpr (kind == UINT16_ELEMENTS || kind == INT16_ELEMENTS) {
+ StoreDataView16(
+ buffer, bufferIndex, TruncateFloat64ToWord32(doubleValue),
+ littleEndian);
+ } else if constexpr (kind == UINT32_ELEMENTS || kind == INT32_ELEMENTS) {
+ StoreDataView32(
+ buffer, bufferIndex, TruncateFloat64ToWord32(doubleValue),
+ littleEndian);
+ } else if constexpr (kind == FLOAT32_ELEMENTS) {
+ let floatValue: float32 = TruncateFloat64ToFloat32(doubleValue);
+ StoreDataView32(
+ buffer, bufferIndex, BitcastFloat32ToInt32(floatValue),
+ littleEndian);
+ } else if constexpr (kind == FLOAT64_ELEMENTS) {
+ let lowWord: uint32 = Float64ExtractLowWord32(doubleValue);
+ let highWord: uint32 = Float64ExtractHighWord32(doubleValue);
+ StoreDataView64(buffer, bufferIndex, lowWord, highWord, littleEndian);
}
}
return Undefined;
}
javascript builtin DataViewPrototypeSetUint8(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewSet(context, receiver, offset, value, Undefined,
- UINT8_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, Undefined, UINT8_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetInt8(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- return DataViewSet(context, receiver, offset, value, Undefined,
- INT8_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, Undefined, INT8_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetUint16(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- let is_little_endian : Object = arguments.length > 2 ?
- arguments[2] :
- Undefined;
- return DataViewSet(context, receiver, offset, value,
- is_little_endian, UINT16_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 2 ? arguments[2] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, isLittleEndian, UINT16_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetInt16(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- let is_little_endian : Object = arguments.length > 2 ?
- arguments[2] :
- Undefined;
- return DataViewSet(context, receiver, offset, value,
- is_little_endian, INT16_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 2 ? arguments[2] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, isLittleEndian, INT16_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetUint32(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- let is_little_endian : Object = arguments.length > 2 ?
- arguments[2] :
- Undefined;
- return DataViewSet(context, receiver, offset, value,
- is_little_endian, UINT32_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 2 ? arguments[2] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, isLittleEndian, UINT32_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetInt32(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- let is_little_endian : Object = arguments.length > 2 ?
- arguments[2] :
- Undefined;
- return DataViewSet(context, receiver, offset, value,
- is_little_endian, INT32_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 2 ? arguments[2] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, isLittleEndian, INT32_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetFloat32(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- let is_little_endian : Object = arguments.length > 2 ?
- arguments[2] :
- Undefined;
- return DataViewSet(context, receiver, offset, value,
- is_little_endian, FLOAT32_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 2 ? arguments[2] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, isLittleEndian, FLOAT32_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetFloat64(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- let is_little_endian : Object = arguments.length > 2 ?
- arguments[2] :
- Undefined;
- return DataViewSet(context, receiver, offset, value,
- is_little_endian, FLOAT64_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 2 ? arguments[2] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, isLittleEndian, FLOAT64_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetBigUint64(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- let is_little_endian : Object = arguments.length > 2 ?
- arguments[2] :
- Undefined;
- return DataViewSet(context, receiver, offset, value,
- is_little_endian, BIGUINT64_ELEMENTS);
- }
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 2 ? arguments[2] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, isLittleEndian, BIGUINT64_ELEMENTS);
+ }
javascript builtin DataViewPrototypeSetBigInt64(
- context: Context, receiver: Object, ...arguments): Object {
- let offset: Object = arguments.length > 0 ?
- arguments[0] :
- Undefined;
- let value : Object = arguments.length > 1 ?
- arguments[1] :
- Undefined;
- let is_little_endian : Object = arguments.length > 2 ?
- arguments[2] :
- Undefined;
- return DataViewSet(context, receiver, offset, value,
- is_little_endian, BIGINT64_ELEMENTS);
- }
-
+ context: Context, receiver: Object, ...arguments): Object {
+ let offset: Object = arguments.length > 0 ? arguments[0] : Undefined;
+ let value: Object = arguments.length > 1 ? arguments[1] : Undefined;
+ let isLittleEndian: Object =
+ arguments.length > 2 ? arguments[2] : Undefined;
+ return DataViewSet(
+ context, receiver, offset, value, isLittleEndian, BIGINT64_ELEMENTS);
+ }
}