diff options
Diffstat (limited to 'deps/v8/test/cctest/test-usecounters.cc')
-rw-r--r-- | deps/v8/test/cctest/test-usecounters.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/deps/v8/test/cctest/test-usecounters.cc b/deps/v8/test/cctest/test-usecounters.cc index 5e37991252..4c6c72a28d 100644 --- a/deps/v8/test/cctest/test-usecounters.cc +++ b/deps/v8/test/cctest/test-usecounters.cc @@ -60,6 +60,27 @@ TEST(AssigmentExpressionLHSIsCall) { use_counts[v8::Isolate::kAssigmentExpressionLHSIsCallInStrict] = 0; } +TEST(AtomicsWakeAndAtomicsNotify) { + v8::Isolate* isolate = CcTest::isolate(); + v8::HandleScope scope(isolate); + LocalContext env; + int use_counts[v8::Isolate::kUseCounterFeatureCount] = {}; + global_use_counts = use_counts; + i::FLAG_harmony_sharedarraybuffer = true; + CcTest::isolate()->SetUseCounterCallback(MockUseCounterCallback); + + CompileRun("Atomics.wake(new Int32Array(new SharedArrayBuffer(16)), 0);"); + CHECK_EQ(1, use_counts[v8::Isolate::kAtomicsWake]); + CHECK_EQ(0, use_counts[v8::Isolate::kAtomicsNotify]); + + use_counts[v8::Isolate::kAtomicsWake] = 0; + use_counts[v8::Isolate::kAtomicsNotify] = 0; + + CompileRun("Atomics.notify(new Int32Array(new SharedArrayBuffer(16)), 0);"); + CHECK_EQ(0, use_counts[v8::Isolate::kAtomicsWake]); + CHECK_EQ(1, use_counts[v8::Isolate::kAtomicsNotify]); +} + } // namespace test_usecounters } // namespace internal } // namespace v8 |