Chromium Code Reviews| Index: src/builtins/builtins-sharedarraybuffer.cc |
| diff --git a/src/builtins/builtins-sharedarraybuffer.cc b/src/builtins/builtins-sharedarraybuffer.cc |
| index 7ee144901e1a074818704e50886065439ee1234f..88ae8e786ff4827cf4ea262fb780928e945dd3e7 100644 |
| --- a/src/builtins/builtins-sharedarraybuffer.cc |
| +++ b/src/builtins/builtins-sharedarraybuffer.cc |
| @@ -289,15 +289,15 @@ BUILTIN(AtomicsIsLockFree) { |
| MUST_USE_RESULT MaybeHandle<JSTypedArray> ValidateSharedIntegerTypedArray( |
| Isolate* isolate, Handle<Object> object, bool only_int32 = false) { |
| if (object->IsJSTypedArray()) { |
| - Handle<JSTypedArray> typedArray = Handle<JSTypedArray>::cast(object); |
| - if (typedArray->GetBuffer()->is_shared()) { |
| + Handle<JSTypedArray> typed_array = Handle<JSTypedArray>::cast(object); |
| + if (typed_array->GetBuffer()->is_shared()) { |
| if (only_int32) { |
| - if (typedArray->type() == kExternalInt32Array) return typedArray; |
| + if (typed_array->type() == kExternalInt32Array) return typed_array; |
| } else { |
| - if (typedArray->type() != kExternalFloat32Array && |
| - typedArray->type() != kExternalFloat64Array && |
| - typedArray->type() != kExternalUint8ClampedArray) |
| - return typedArray; |
| + if (typed_array->type() != kExternalFloat32Array && |
| + typed_array->type() != kExternalFloat64Array && |
| + typed_array->type() != kExternalUint8ClampedArray) |
| + return typed_array; |
| } |
| } |
| } |
| @@ -311,29 +311,32 @@ MUST_USE_RESULT MaybeHandle<JSTypedArray> ValidateSharedIntegerTypedArray( |
| } |
| // ES #sec-validateatomicaccess |
| +// ValidateAtomicAccess( typedArray, requestIndex ) |
| MUST_USE_RESULT Maybe<size_t> ValidateAtomicAccess( |
| - Isolate* isolate, Handle<JSTypedArray> typedArray, |
| - Handle<Object> requestIndex) { |
| + Isolate* isolate, Handle<JSTypedArray> typed_array, |
| + Handle<Object> request_index) { |
| // TOOD(v8:5961): Use ToIndex for indexes |
| - ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
| - isolate, requestIndex, Object::ToNumber(requestIndex), Nothing<size_t>()); |
| + ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, request_index, |
| + Object::ToNumber(request_index), |
| + Nothing<size_t>()); |
| Handle<Object> offset; |
| ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, offset, |
| - Object::ToInteger(isolate, requestIndex), |
| + Object::ToInteger(isolate, request_index), |
| Nothing<size_t>()); |
| - if (!requestIndex->SameValue(*offset)) { |
| + if (!request_index->SameValue(*offset)) { |
| isolate->Throw(*isolate->factory()->NewRangeError( |
| MessageTemplate::kInvalidAtomicAccessIndex)); |
| return Nothing<size_t>(); |
| } |
| - size_t accessIndex; |
| - uint32_t length = typedArray->length_value(); |
| - if (!TryNumberToSize(*requestIndex, &accessIndex) || accessIndex >= length) { |
| + size_t access_index; |
| + uint32_t length = typed_array->length_value(); |
| + if (!TryNumberToSize(*request_index, &access_index) || |
| + access_index >= length) { |
| isolate->Throw(*isolate->factory()->NewRangeError( |
| MessageTemplate::kInvalidAtomicAccessIndex)); |
| return Nothing<size_t>(); |
| } |
| - return Just<size_t>(accessIndex); |
| + return Just<size_t>(access_index); |
| } |
| // ES #sec-atomics.wake |
| @@ -348,9 +351,9 @@ BUILTIN(AtomicsWake) { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array, true)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| uint32_t c; |
| if (count->IsUndefined(isolate)) { |
| @@ -358,12 +361,12 @@ BUILTIN(AtomicsWake) { |
| } else { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, count, |
| Object::ToInteger(isolate, count)); |
| - double countDouble = count->Number(); |
| - if (countDouble < 0) |
| - countDouble = 0; |
| - else if (countDouble > kMaxUInt32) |
| - countDouble = kMaxUInt32; |
| - c = static_cast<uint32_t>(countDouble); |
| + double count_double = count->Number(); |
| + if (count_double < 0) |
| + count_double = 0; |
| + else if (count_double > kMaxUInt32) |
| + count_double = kMaxUInt32; |
| + c = static_cast<uint32_t>(count_double); |
| } |
| Handle<JSArrayBuffer> array_buffer = sta->GetBuffer(); |
| @@ -385,25 +388,25 @@ BUILTIN(AtomicsWait) { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array, true)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value, |
| Object::ToInt32(isolate, value)); |
| - int32_t valueInt32 = NumberToInt32(*value); |
| + int32_t value_int32 = NumberToInt32(*value); |
| - double timeoutNumber; |
| + double timeout_number; |
| if (timeout->IsUndefined(isolate)) { |
| - timeoutNumber = isolate->heap()->infinity_value()->Number(); |
| + timeout_number = isolate->heap()->infinity_value()->Number(); |
| } else { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, timeout, |
| Object::ToNumber(timeout)); |
| - timeoutNumber = timeout->Number(); |
| - if (std::isnan(timeoutNumber)) |
| - timeoutNumber = isolate->heap()->infinity_value()->Number(); |
| - else if (timeoutNumber < 0) |
| - timeoutNumber = 0; |
| + timeout_number = timeout->Number(); |
| + if (std::isnan(timeout_number)) |
| + timeout_number = isolate->heap()->infinity_value()->Number(); |
| + else if (timeout_number < 0) |
| + timeout_number = 0; |
| } |
| if (!isolate->allow_atomics_wait()) { |
| @@ -414,8 +417,8 @@ BUILTIN(AtomicsWait) { |
| Handle<JSArrayBuffer> array_buffer = sta->GetBuffer(); |
| size_t addr = (i << 2) + NumberToSize(sta->byte_offset()); |
| - return FutexEmulation::Wait(isolate, array_buffer, addr, valueInt32, |
| - timeoutNumber); |
| + return FutexEmulation::Wait(isolate, array_buffer, addr, value_int32, |
| + value_int32); |
| } |
| namespace { |
| @@ -638,61 +641,6 @@ inline Object* DoExchange(Isolate* isolate, void* buffer, size_t index, |
| return ToObject(isolate, result); |
| } |
| -// Uint8Clamped functions |
| - |
| -uint8_t ClampToUint8(int32_t value) { |
| - if (value < 0) return 0; |
| - if (value > 255) return 255; |
| - return value; |
| -} |
| - |
| -inline Object* DoCompareExchangeUint8Clamped(Isolate* isolate, void* buffer, |
| - size_t index, |
| - Handle<Object> oldobj, |
| - Handle<Object> newobj) { |
| - typedef int32_t convert_type; |
| - uint8_t oldval = ClampToUint8(FromObject<convert_type>(oldobj)); |
| - uint8_t newval = ClampToUint8(FromObject<convert_type>(newobj)); |
| - uint8_t result = CompareExchangeSeqCst(static_cast<uint8_t*>(buffer) + index, |
| - oldval, newval); |
| - return ToObject(isolate, result); |
| -} |
| - |
| -#define DO_UINT8_CLAMPED_OP(name, op) \ |
| - inline Object* Do##name##Uint8Clamped(Isolate* isolate, void* buffer, \ |
| - size_t index, Handle<Object> obj) { \ |
| - typedef int32_t convert_type; \ |
| - uint8_t* p = static_cast<uint8_t*>(buffer) + index; \ |
| - convert_type operand = FromObject<convert_type>(obj); \ |
| - uint8_t expected; \ |
| - uint8_t result; \ |
| - do { \ |
| - expected = *p; \ |
| - result = ClampToUint8(static_cast<convert_type>(expected) op operand); \ |
| - } while (CompareExchangeSeqCst(p, expected, result) != expected); \ |
| - return ToObject(isolate, expected); \ |
| - } |
| - |
| -DO_UINT8_CLAMPED_OP(Add, +) |
| -DO_UINT8_CLAMPED_OP(Sub, -) |
| -DO_UINT8_CLAMPED_OP(And, &) |
| -DO_UINT8_CLAMPED_OP(Or, |) |
| -DO_UINT8_CLAMPED_OP(Xor, ^) |
| - |
| -#undef DO_UINT8_CLAMPED_OP |
| - |
| -inline Object* DoExchangeUint8Clamped(Isolate* isolate, void* buffer, |
| - size_t index, Handle<Object> obj) { |
| - typedef int32_t convert_type; |
| - uint8_t* p = static_cast<uint8_t*>(buffer) + index; |
| - uint8_t result = ClampToUint8(FromObject<convert_type>(obj)); |
| - uint8_t expected; |
| - do { |
| - expected = *p; |
| - } while (CompareExchangeSeqCst(p, expected, result) != expected); |
| - return ToObject(isolate, expected); |
| -} |
| - |
| } // anonymous namespace |
| // Duplicated from objects.h |
| @@ -711,38 +659,38 @@ BUILTIN(AtomicsCompareExchange) { |
| HandleScope scope(isolate); |
| Handle<Object> array = args.atOrUndefined(isolate, 1); |
| Handle<Object> index = args.atOrUndefined(isolate, 2); |
| - Handle<Object> expectedValue = args.atOrUndefined(isolate, 3); |
| - Handle<Object> replacementValue = args.atOrUndefined(isolate, 4); |
| + Handle<Object> expected_value = args.atOrUndefined(isolate, 3); |
| + Handle<Object> replacement_value = args.atOrUndefined(isolate, 4); |
| Handle<JSTypedArray> sta; |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| - ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, expectedValue, |
| - Object::ToInteger(isolate, expectedValue)); |
| + ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| + isolate, expected_value, Object::ToInteger(isolate, expected_value)); |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| - isolate, replacementValue, Object::ToInteger(isolate, replacementValue)); |
| + isolate, replacement_value, |
| + Object::ToInteger(isolate, replacement_value)); |
| uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) + |
| NumberToSize(sta->byte_offset()); |
| switch (sta->type()) { |
| -#define TYPED_ARRAY_CASE(Type, typeName, TYPE, ctype, size) \ |
| - case kExternal##Type##Array: \ |
| - return DoCompareExchange<ctype>(isolate, source, i, expectedValue, \ |
| - replacementValue); |
| +#define TYPED_ARRAY_CASE(Type, typeName, TYPE, ctype, size) \ |
| + case kExternal##Type##Array: \ |
| + return DoCompareExchange<ctype>(isolate, source, i, expected_value, \ |
| + replacement_value); |
| INTEGER_TYPED_ARRAYS(TYPED_ARRAY_CASE) |
| #undef TYPED_ARRAY_CASE |
| case kExternalUint8ClampedArray: |
| - return DoCompareExchangeUint8Clamped(isolate, source, i, expectedValue, |
| - replacementValue); |
| + UNREACHABLE(); |
|
binji
2017/02/21 18:16:52
May as well just fall through to the unreachable b
Dan Ehrenberg
2017/02/22 15:57:59
Done.
|
| default: |
| break; |
| @@ -764,9 +712,9 @@ BUILTIN(AtomicsAdd) { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value, |
| Object::ToInteger(isolate, value)); |
| @@ -783,7 +731,7 @@ BUILTIN(AtomicsAdd) { |
| #undef TYPED_ARRAY_CASE |
| case kExternalUint8ClampedArray: |
| - return DoAddUint8Clamped(isolate, source, i, value); |
| + UNREACHABLE(); |
| default: |
| break; |
| @@ -805,9 +753,9 @@ BUILTIN(AtomicsSub) { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value, |
| Object::ToInteger(isolate, value)); |
| @@ -824,7 +772,7 @@ BUILTIN(AtomicsSub) { |
| #undef TYPED_ARRAY_CASE |
| case kExternalUint8ClampedArray: |
| - return DoSubUint8Clamped(isolate, source, i, value); |
| + UNREACHABLE(); |
| default: |
| break; |
| @@ -846,9 +794,9 @@ BUILTIN(AtomicsAnd) { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value, |
| Object::ToInteger(isolate, value)); |
| @@ -865,7 +813,7 @@ BUILTIN(AtomicsAnd) { |
| #undef TYPED_ARRAY_CASE |
| case kExternalUint8ClampedArray: |
| - return DoAndUint8Clamped(isolate, source, i, value); |
| + UNREACHABLE(); |
| default: |
| break; |
| @@ -887,9 +835,9 @@ BUILTIN(AtomicsOr) { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value, |
| Object::ToInteger(isolate, value)); |
| @@ -906,7 +854,7 @@ BUILTIN(AtomicsOr) { |
| #undef TYPED_ARRAY_CASE |
| case kExternalUint8ClampedArray: |
| - return DoOrUint8Clamped(isolate, source, i, value); |
| + UNREACHABLE(); |
| default: |
| break; |
| @@ -928,9 +876,9 @@ BUILTIN(AtomicsXor) { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value, |
| Object::ToInteger(isolate, value)); |
| @@ -947,7 +895,7 @@ BUILTIN(AtomicsXor) { |
| #undef TYPED_ARRAY_CASE |
| case kExternalUint8ClampedArray: |
| - return DoXorUint8Clamped(isolate, source, i, value); |
| + UNREACHABLE(); |
| default: |
| break; |
| @@ -969,9 +917,9 @@ BUILTIN(AtomicsExchange) { |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
| isolate, sta, ValidateSharedIntegerTypedArray(isolate, array)); |
| - Maybe<size_t> maybeIndex = ValidateAtomicAccess(isolate, sta, index); |
| - if (maybeIndex.IsNothing()) return isolate->heap()->exception(); |
| - size_t i = maybeIndex.FromJust(); |
| + Maybe<size_t> maybe_index = ValidateAtomicAccess(isolate, sta, index); |
| + if (maybe_index.IsNothing()) return isolate->heap()->exception(); |
| + size_t i = maybe_index.FromJust(); |
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value, |
| Object::ToInteger(isolate, value)); |
| @@ -988,7 +936,7 @@ BUILTIN(AtomicsExchange) { |
| #undef TYPED_ARRAY_CASE |
| case kExternalUint8ClampedArray: |
| - return DoExchangeUint8Clamped(isolate, source, i, value); |
| + UNREACHABLE(); |
| default: |
| break; |