diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-05-02 10:50:00 +0200 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-05-06 20:02:35 +0200 |
commit | 60d1aac8d225e844e68ae48e8f3d58802e635fbe (patch) | |
tree | 922f347dd054db18d88666fad7181e5a777f4022 /deps/v8/src/runtime/runtime-futex.cc | |
parent | 73d9c0f903ae371cd5011af64c3a6f69a1bda978 (diff) | |
download | android-node-v8-60d1aac8d225e844e68ae48e8f3d58802e635fbe.tar.gz android-node-v8-60d1aac8d225e844e68ae48e8f3d58802e635fbe.tar.bz2 android-node-v8-60d1aac8d225e844e68ae48e8f3d58802e635fbe.zip |
deps: update V8 to 5.8.283.38
PR-URL: https://github.com/nodejs/node/pull/12784
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'deps/v8/src/runtime/runtime-futex.cc')
-rw-r--r-- | deps/v8/src/runtime/runtime-futex.cc | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/deps/v8/src/runtime/runtime-futex.cc b/deps/v8/src/runtime/runtime-futex.cc index 4af0831acf..b6582ffc7f 100644 --- a/deps/v8/src/runtime/runtime-futex.cc +++ b/deps/v8/src/runtime/runtime-futex.cc @@ -29,6 +29,11 @@ RUNTIME_FUNCTION(Runtime_AtomicsWait) { CHECK_EQ(sta->type(), kExternalInt32Array); CHECK(timeout == V8_INFINITY || !std::isnan(timeout)); + if (!isolate->allow_atomics_wait()) { + THROW_NEW_ERROR_RETURN_FAILURE( + isolate, NewTypeError(MessageTemplate::kAtomicsWaitNotAllowed)); + } + Handle<JSArrayBuffer> array_buffer = sta->GetBuffer(); size_t addr = (index << 2) + NumberToSize(sta->byte_offset()); @@ -40,7 +45,7 @@ RUNTIME_FUNCTION(Runtime_AtomicsWake) { DCHECK_EQ(3, args.length()); CONVERT_ARG_HANDLE_CHECKED(JSTypedArray, sta, 0); CONVERT_SIZE_ARG_CHECKED(index, 1); - CONVERT_INT32_ARG_CHECKED(count, 2); + CONVERT_UINT32_ARG_CHECKED(count, 2); CHECK(sta->GetBuffer()->is_shared()); CHECK_LT(index, NumberToSize(sta->length())); CHECK_EQ(sta->type(), kExternalInt32Array); @@ -65,5 +70,14 @@ RUNTIME_FUNCTION(Runtime_AtomicsNumWaitersForTesting) { return FutexEmulation::NumWaitersForTesting(isolate, array_buffer, addr); } + +RUNTIME_FUNCTION(Runtime_SetAllowAtomicsWait) { + HandleScope scope(isolate); + DCHECK_EQ(1, args.length()); + CONVERT_BOOLEAN_ARG_CHECKED(set, 0); + + isolate->set_allow_atomics_wait(set); + return isolate->heap()->undefined_value(); +} } // namespace internal } // namespace v8 |