Index: test/cctest/interpreter/test-interpreter.cc |
diff --git a/test/cctest/interpreter/test-interpreter.cc b/test/cctest/interpreter/test-interpreter.cc |
index 99a8d8bcd253021cd728372c54c9dd6484fbdaac..d1982e22cf72eb81a800554503ca97ace5ae1db7 100644 |
--- a/test/cctest/interpreter/test-interpreter.cc |
+++ b/test/cctest/interpreter/test-interpreter.cc |
@@ -930,8 +930,7 @@ TEST(InterpreterStoreKeyedProperty) { |
CHECK_EQ(Smi::cast(*result), Smi::FromInt(999)); |
} |
- |
-TEST(InterpreterCall) { |
+static void TestInterpreterCall(TailCallMode tail_call_mode) { |
HandleAndZoneScope handles; |
i::Isolate* isolate = handles.main_isolate(); |
i::Factory* factory = isolate->factory(); |
@@ -953,7 +952,7 @@ TEST(InterpreterCall) { |
0, 1); |
builder.LoadNamedProperty(builder.Parameter(0), name, slot_index, i::SLOPPY) |
.StoreAccumulatorInRegister(Register(0)) |
- .Call(Register(0), builder.Parameter(0), 1, 0) |
+ .Call(Register(0), builder.Parameter(0), 1, 0, tail_call_mode) |
.Return(); |
Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray(); |
@@ -972,7 +971,7 @@ TEST(InterpreterCall) { |
0, 1); |
builder.LoadNamedProperty(builder.Parameter(0), name, slot_index, i::SLOPPY) |
.StoreAccumulatorInRegister(Register(0)) |
- .Call(Register(0), builder.Parameter(0), 1, 0) |
+ .Call(Register(0), builder.Parameter(0), 1, 0, tail_call_mode) |
.Return(); |
Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray(); |
@@ -1000,7 +999,7 @@ TEST(InterpreterCall) { |
.StoreAccumulatorInRegister(Register(2)) |
.LoadLiteral(Smi::FromInt(11)) |
.StoreAccumulatorInRegister(Register(3)) |
- .Call(Register(0), Register(1), 3, 0) |
+ .Call(Register(0), Register(1), 3, 0, tail_call_mode) |
.Return(); |
Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray(); |
@@ -1043,7 +1042,7 @@ TEST(InterpreterCall) { |
.StoreAccumulatorInRegister(Register(10)) |
.LoadLiteral(factory->NewStringFromAsciiChecked("j")) |
.StoreAccumulatorInRegister(Register(11)) |
- .Call(Register(0), Register(1), 11, 0) |
+ .Call(Register(0), Register(1), 11, 0, tail_call_mode) |
.Return(); |
Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray(); |
@@ -1064,6 +1063,9 @@ TEST(InterpreterCall) { |
} |
} |
+TEST(InterpreterCall) { TestInterpreterCall(TailCallMode::kDisallow); } |
+ |
+TEST(InterpreterTailCall) { TestInterpreterCall(TailCallMode::kAllow); } |
static BytecodeArrayBuilder& SetRegister(BytecodeArrayBuilder& builder, |
Register reg, int value, |