OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/base/utils/random-number-generator.h" | 5 #include "src/base/utils/random-number-generator.h" |
6 #include "src/code-factory.h" | 6 #include "src/code-factory.h" |
7 #include "src/code-stub-assembler.h" | 7 #include "src/code-stub-assembler.h" |
8 #include "src/compiler/node.h" | 8 #include "src/compiler/node.h" |
9 #include "src/isolate.h" | 9 #include "src/isolate.h" |
10 #include "test/cctest/compiler/code-assembler-tester.h" | 10 #include "test/cctest/compiler/code-assembler-tester.h" |
(...skipping 1774 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1785 Recompile<KeyedLoadICTFStub>(isolate); | 1785 Recompile<KeyedLoadICTFStub>(isolate); |
1786 Recompile<KeyedLoadICTrampolineTFStub>(isolate); | 1786 Recompile<KeyedLoadICTrampolineTFStub>(isolate); |
1787 Recompile<StoreICStub>(isolate, StoreICState(STRICT)); | 1787 Recompile<StoreICStub>(isolate, StoreICState(STRICT)); |
1788 Recompile<StoreICTrampolineStub>(isolate, StoreICState(STRICT)); | 1788 Recompile<StoreICTrampolineStub>(isolate, StoreICState(STRICT)); |
1789 Recompile<KeyedStoreICTFStub>(isolate, StoreICState(STRICT)); | 1789 Recompile<KeyedStoreICTFStub>(isolate, StoreICState(STRICT)); |
1790 Recompile<KeyedStoreICTrampolineTFStub>(isolate, StoreICState(STRICT)); | 1790 Recompile<KeyedStoreICTrampolineTFStub>(isolate, StoreICState(STRICT)); |
1791 } | 1791 } |
1792 v8_isolate->Dispose(); | 1792 v8_isolate->Dispose(); |
1793 } | 1793 } |
1794 | 1794 |
| 1795 void CustomPromiseHook(v8::PromiseHookType type, v8::Local<v8::Promise> promise, |
| 1796 v8::Local<v8::Value> parentPromise) {} |
| 1797 |
1795 TEST(IsPromiseHookEnabled) { | 1798 TEST(IsPromiseHookEnabled) { |
1796 Isolate* isolate(CcTest::InitIsolateOnce()); | 1799 Isolate* isolate(CcTest::InitIsolateOnce()); |
1797 | 1800 |
1798 const int kNumParams = 1; | 1801 const int kNumParams = 1; |
1799 CodeAssemblerTester data(isolate, kNumParams); | 1802 CodeAssemblerTester data(isolate, kNumParams); |
1800 CodeStubAssembler m(data.state()); | 1803 CodeStubAssembler m(data.state()); |
1801 | 1804 |
1802 m.Return(m.SelectBooleanConstant(m.IsPromiseHookEnabled())); | 1805 m.Return(m.SelectBooleanConstant(m.IsPromiseHookEnabled())); |
1803 | 1806 |
1804 Handle<Code> code = data.GenerateCode(); | 1807 Handle<Code> code = data.GenerateCode(); |
1805 CHECK(!code.is_null()); | 1808 CHECK(!code.is_null()); |
1806 | 1809 |
1807 FunctionTester ft(code, kNumParams); | 1810 FunctionTester ft(code, kNumParams); |
1808 CHECK_EQ(false, isolate->IsPromiseHookEnabled()); | |
1809 Handle<Object> result = | 1811 Handle<Object> result = |
1810 ft.Call(isolate->factory()->undefined_value()).ToHandleChecked(); | 1812 ft.Call(isolate->factory()->undefined_value()).ToHandleChecked(); |
1811 CHECK_EQ(isolate->heap()->false_value(), *result); | 1813 CHECK_EQ(isolate->heap()->false_value(), *result); |
1812 | 1814 |
1813 isolate->EnablePromiseHook(); | 1815 isolate->SetPromiseHook(CustomPromiseHook); |
1814 result = ft.Call(isolate->factory()->undefined_value()).ToHandleChecked(); | 1816 result = ft.Call(isolate->factory()->undefined_value()).ToHandleChecked(); |
1815 CHECK_EQ(isolate->heap()->true_value(), *result); | 1817 CHECK_EQ(isolate->heap()->true_value(), *result); |
1816 | 1818 |
1817 isolate->DisablePromiseHook(); | 1819 isolate->SetPromiseHook(nullptr); |
1818 result = ft.Call(isolate->factory()->undefined_value()).ToHandleChecked(); | 1820 result = ft.Call(isolate->factory()->undefined_value()).ToHandleChecked(); |
1819 CHECK_EQ(isolate->heap()->false_value(), *result); | 1821 CHECK_EQ(isolate->heap()->false_value(), *result); |
1820 } | 1822 } |
1821 | 1823 |
1822 TEST(AllocateJSPromise) { | 1824 TEST(AllocateJSPromise) { |
1823 Isolate* isolate(CcTest::InitIsolateOnce()); | 1825 Isolate* isolate(CcTest::InitIsolateOnce()); |
1824 | 1826 |
1825 const int kNumParams = 1; | 1827 const int kNumParams = 1; |
1826 CodeAssemblerTester data(isolate, kNumParams); | 1828 CodeAssemblerTester data(isolate, kNumParams); |
1827 CodeStubAssembler m(data.state()); | 1829 CodeStubAssembler m(data.state()); |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1967 | 1969 |
1968 result = ft.Call(isolate->factory()->empty_string()).ToHandleChecked(); | 1970 result = ft.Call(isolate->factory()->empty_string()).ToHandleChecked(); |
1969 CHECK_EQ(isolate->heap()->false_value(), *result); | 1971 CHECK_EQ(isolate->heap()->false_value(), *result); |
1970 | 1972 |
1971 result = ft.Call(isolate->factory()->NewPrivateSymbol()).ToHandleChecked(); | 1973 result = ft.Call(isolate->factory()->NewPrivateSymbol()).ToHandleChecked(); |
1972 CHECK_EQ(isolate->heap()->true_value(), *result); | 1974 CHECK_EQ(isolate->heap()->true_value(), *result); |
1973 } | 1975 } |
1974 | 1976 |
1975 } // namespace internal | 1977 } // namespace internal |
1976 } // namespace v8 | 1978 } // namespace v8 |
OLD | NEW |