// Copyright 2014 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "src/api.h" #include "src/code-factory.h" #include "src/code-stubs.h" #include "src/compilation-info.h" #include "src/compiler.h" #include "src/compiler/common-operator.h" #include "src/compiler/graph.h" #include "src/compiler/linkage.h" #include "src/compiler/machine-operator.h" #include "src/compiler/node.h" #include "src/compiler/operator.h" #include "src/compiler/pipeline.h" #include "src/compiler/schedule.h" #include "src/objects-inl.h" #include "src/parsing/parse-info.h" #include "src/zone/zone.h" #include "test/cctest/cctest.h" namespace v8 { namespace internal { namespace compiler { static Operator dummy_operator(IrOpcode::kParameter, Operator::kNoWrite, "dummy", 0, 0, 0, 0, 0, 0); // So we can get a real JS function. static Handle Compile(const char* source) { Isolate* isolate = CcTest::i_isolate(); Handle source_code = isolate->factory() ->NewStringFromUtf8(CStrVector(source)) .ToHandleChecked(); Handle shared = Compiler::GetSharedFunctionInfoForScript( source_code, Handle(), 0, 0, v8::ScriptOriginOptions(), Handle(), Handle(isolate->native_context()), NULL, NULL, v8::ScriptCompiler::kNoCompileOptions, NOT_NATIVES_CODE, Handle()); return isolate->factory()->NewFunctionFromSharedFunctionInfo( shared, isolate->native_context()); } TEST(TestLinkageCreate) { HandleAndZoneScope handles; Handle function = Compile("a + b"); Handle shared(function->shared()); Handle