Chromium Code Reviews| Index: test/cctest/compiler/test-code-stub-assembler.cc |
| diff --git a/test/cctest/compiler/test-code-stub-assembler.cc b/test/cctest/compiler/test-code-stub-assembler.cc |
| index 0306561020abe41e5342f9cc209062f67bd9d208..64c8a99dddbb0b40cb86c2eb615f2858e0eea021 100644 |
| --- a/test/cctest/compiler/test-code-stub-assembler.cc |
| +++ b/test/cctest/compiler/test-code-stub-assembler.cc |
| @@ -13,12 +13,19 @@ namespace compiler { |
| class CodeStubAssemblerTester : public CodeStubAssembler { |
| public: |
| + // Test generating code for a stub. |
| CodeStubAssemblerTester(Isolate* isolate, |
| const CallInterfaceDescriptor& descriptor) |
| : CodeStubAssembler(isolate, isolate->runtime_zone(), descriptor, |
| Code::ComputeFlags(Code::STUB), "test"), |
| scope_(isolate) {} |
| + // Test generating code for a JS function (e.g. builtins). |
| + CodeStubAssemblerTester(Isolate* isolate, int parameter_count) |
| + : CodeStubAssembler(isolate, isolate->runtime_zone(), parameter_count, |
| + Code::ComputeFlags(Code::FUNCTION), "test"), |
| + scope_(isolate) {} |
| + |
| private: |
| HandleScope scope_; |
| LocalContext context_; |
| @@ -247,6 +254,20 @@ TEST(FixedArrayAccessSmiIndex) { |
| CHECK_EQ(733, Handle<Smi>::cast(result.ToHandleChecked())->value()); |
| } |
| +TEST(JSFunction) { |
| + const int kNumParams = 3; // Receiver, left, right. |
| + Isolate* isolate(CcTest::InitIsolateOnce()); |
| + CodeStubAssemblerTester m(isolate, kNumParams); |
| + m.Return(m.SmiTag( |
| + m.Int32Add(m.SmiUntag(m.Parameter(1)), m.SmiUntag(m.Parameter(2))))); |
| + Handle<Code> code = m.GenerateCode(); |
| + FunctionTester ft(kNumParams - 1, code); // Implicit undefined receiver. |
|
Jarin
2016/02/18 09:04:38
Apparently, there is a bug in FunctionTester::Buil
binji
2016/02/18 19:35:16
Acknowledged.
|
| + Handle<Object> left = Handle<Smi>(Smi::FromInt(23), isolate); |
| + Handle<Object> right = Handle<Smi>(Smi::FromInt(34), isolate); |
| + MaybeHandle<Object> result = ft.Call(left, right); |
| + CHECK_EQ(57, Handle<Smi>::cast(result.ToHandleChecked())->value()); |
| +} |
|
Jarin
2016/02/18 12:32:15
Actually, FunctionTester as a whole seems to be a
binji
2016/02/18 19:35:17
Done.
|
| + |
| } // namespace compiler |
| } // namespace internal |
| } // namespace v8 |