Chromium Code Reviews| Index: test/cctest/interpreter/test-interpreter.cc |
| diff --git a/test/cctest/interpreter/test-interpreter.cc b/test/cctest/interpreter/test-interpreter.cc |
| index 188b3e61d99c5f8aef53684ba6eeff20819e06ac..22e603883b54d252da431d6bf52acbdab1b282f4 100644 |
| --- a/test/cctest/interpreter/test-interpreter.cc |
| +++ b/test/cctest/interpreter/test-interpreter.cc |
| @@ -1637,3 +1637,61 @@ TEST(InterpreterFunctionLiteral) { |
| Handle<Smi>(Smi::FromInt(3), handles.main_isolate())).ToHandleChecked(); |
| CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(5)); |
| } |
| + |
| + |
| +TEST(InterpreterConstruct) { |
| + HandleAndZoneScope handles; |
| + |
| + std::string source( |
| + "function counter() { this.count = 0; }\n" |
| + "function " + |
| + InterpreterTester::function_name() + |
| + "() {\n" |
| + " var c = new counter();\n" |
| + " return c.count;\n" |
| + "}"); |
| + InterpreterTester tester(handles.main_isolate(), source.c_str()); |
| + auto callable = tester.GetCallable<>(); |
| + |
| + Handle<Object> return_val = callable().ToHandleChecked(); |
| + CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(0)); |
| +} |
| + |
| + |
| +TEST(InterpreterConstructWithArgument) { |
| + HandleAndZoneScope handles; |
| + |
| + std::string source( |
| + "function counter(arg0) { this.count = 17; this.x = arg0; }\n" |
| + "function " + |
| + InterpreterTester::function_name() + |
| + "() {\n" |
| + " var c = new counter(3);\n" |
| + " return c.x;\n" |
| + "}"); |
| + InterpreterTester tester(handles.main_isolate(), source.c_str()); |
| + auto callable = tester.GetCallable<>(); |
| + |
| + Handle<Object> return_val = callable().ToHandleChecked(); |
| + CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(3)); |
| +} |
| + |
| + |
| +TEST(InterpreterConstructWithArguments) { |
| + HandleAndZoneScope handles; |
| + |
| + std::string source( |
| + "function counter(arg0, arg1) { this.count = 17; this.x = arg0; this.y = " |
|
rmcilroy
2015/10/14 10:18:35
nit - newline after '{'
oth
2015/10/14 16:02:19
Done.
|
| + "arg1; }\n" |
| + "function " + |
| + InterpreterTester::function_name() + |
| + "() {\n" |
| + " var c = new counter(3, 4);\n" |
| + " return c.y;\n" |
| + "}"); |
| + InterpreterTester tester(handles.main_isolate(), source.c_str()); |
| + auto callable = tester.GetCallable<>(); |
| + |
| + Handle<Object> return_val = callable().ToHandleChecked(); |
| + CHECK_EQ(Smi::cast(*return_val), Smi::FromInt(4)); |
| +} |