Add TypedArrayHelper to represent common TypedArray features

* update ArrayBuffer using TypedArrayHelper
* fix a bug related to length of ArrayBuffer on 32bit

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
This commit is contained in:
HyukWoo Park 2020-05-13 11:56:19 +09:00 committed by Boram Bae
commit 8bba87833a
8 changed files with 154 additions and 188 deletions

View file

@ -77,10 +77,10 @@ static Value builtinArrayBufferSlice(ExecutionState& state, Value thisValue, siz
double len = obj->byteLength();
double relativeStart = argv[0].toInteger(state);
unsigned first = (relativeStart < 0) ? std::max(len + relativeStart, 0.0) : std::min(relativeStart, len);
size_t first = (relativeStart < 0) ? std::max(len + relativeStart, 0.0) : std::min(relativeStart, len);
double relativeEnd = argv[1].isUndefined() ? len : argv[1].toInteger(state);
unsigned final_ = (relativeEnd < 0) ? std::max(len + relativeEnd, 0.0) : std::min(relativeEnd, len);
unsigned newLen = std::max((int)final_ - (int)first, 0);
double final_ = (relativeEnd < 0) ? std::max(len + relativeEnd, 0.0) : std::min(relativeEnd, len);
size_t newLen = std::max((int)final_ - (int)first, 0);
Value constructor = obj->speciesConstructor(state, state.context()->globalObject()->arrayBuffer());
Value arguments[] = { Value(newLen) };