summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/torque/test-torque.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/cctest/torque/test-torque.cc')
-rw-r--r--deps/v8/test/cctest/torque/test-torque.cc70
1 files changed, 69 insertions, 1 deletions
diff --git a/deps/v8/test/cctest/torque/test-torque.cc b/deps/v8/test/cctest/torque/test-torque.cc
index 34956be97c..11a683f85e 100644
--- a/deps/v8/test/cctest/torque/test-torque.cc
+++ b/deps/v8/test/cctest/torque/test-torque.cc
@@ -139,10 +139,28 @@ TEST(TestFunctionPointers) {
m.UncheckedCast<Context>(m.Parameter(kNumParams + 2));
m.Return(m.TestFunctionPointers(context));
}
- FunctionTester ft(asm_tester.GenerateCode(), 0);
+ FunctionTester ft(asm_tester.GenerateCode(), kNumParams);
ft.CheckCall(ft.true_value());
}
+TEST(TestTernaryOperator) {
+ Isolate* isolate(CcTest::InitIsolateOnce());
+ const int kNumParams = 1;
+ CodeAssemblerTester asm_tester(isolate, kNumParams);
+ TestBuiltinsFromDSLAssembler m(asm_tester.state());
+ {
+ TNode<Smi> arg = m.UncheckedCast<Smi>(m.Parameter(0));
+ m.Return(m.TestTernaryOperator(arg));
+ }
+ FunctionTester ft(asm_tester.GenerateCode(), kNumParams);
+ Handle<Object> result1 =
+ ft.Call(Handle<Smi>(Smi::FromInt(-5), isolate)).ToHandleChecked();
+ CHECK_EQ(-15, Handle<Smi>::cast(result1)->value());
+ Handle<Object> result2 =
+ ft.Call(Handle<Smi>(Smi::FromInt(3), isolate)).ToHandleChecked();
+ CHECK_EQ(103, Handle<Smi>::cast(result2)->value());
+}
+
TEST(TestFunctionPointerToGeneric) {
Isolate* isolate(CcTest::InitIsolateOnce());
CodeAssemblerTester asm_tester(isolate, 0);
@@ -156,6 +174,56 @@ TEST(TestFunctionPointerToGeneric) {
ft.Call();
}
+TEST(TestUnsafeCast) {
+ Isolate* isolate(CcTest::InitIsolateOnce());
+ CodeAssemblerTester asm_tester(isolate, 0);
+ TestBuiltinsFromDSLAssembler m(asm_tester.state());
+ {
+ Node* temp = m.SmiConstant(0);
+ Node* n = m.SmiConstant(10);
+ m.Return(m.TestUnsafeCast(m.UncheckedCast<Context>(temp),
+ m.UncheckedCast<Number>(n)));
+ }
+ FunctionTester ft(asm_tester.GenerateCode(), 0);
+ ft.CheckCall(ft.true_value());
+}
+
+TEST(TestHexLiteral) {
+ Isolate* isolate(CcTest::InitIsolateOnce());
+ CodeAssemblerTester asm_tester(isolate, 0);
+ TestBuiltinsFromDSLAssembler m(asm_tester.state());
+ {
+ m.TestHexLiteral();
+ m.Return(m.UndefinedConstant());
+ }
+ FunctionTester ft(asm_tester.GenerateCode(), 0);
+ ft.Call();
+}
+
+TEST(TestModuleConstBindings) {
+ Isolate* isolate(CcTest::InitIsolateOnce());
+ CodeAssemblerTester asm_tester(isolate, 0);
+ TestBuiltinsFromDSLAssembler m(asm_tester.state());
+ {
+ m.TestModuleConstBindings();
+ m.Return(m.UndefinedConstant());
+ }
+ FunctionTester ft(asm_tester.GenerateCode(), 0);
+ ft.Call();
+}
+
+TEST(TestLocalConstBindings) {
+ Isolate* isolate(CcTest::InitIsolateOnce());
+ CodeAssemblerTester asm_tester(isolate, 0);
+ TestBuiltinsFromDSLAssembler m(asm_tester.state());
+ {
+ m.TestLocalConstBindings();
+ m.Return(m.UndefinedConstant());
+ }
+ FunctionTester ft(asm_tester.GenerateCode(), 0);
+ ft.Call();
+}
+
} // namespace compiler
} // namespace internal
} // namespace v8