Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1526)

Unified Diff: test/cctest/test-compiler.cc

Issue 1458003006: Remove usage of deprecated APIs from compiler/deopt test (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | test/cctest/test-deoptimization.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/test-compiler.cc
diff --git a/test/cctest/test-compiler.cc b/test/cctest/test-compiler.cc
index e15aef74a0cfa0dda5ca6929d8106bb25157a5a4..4db16ee3b27add3110a316a154a4b0f5aee83d6d 100644
--- a/test/cctest/test-compiler.cc
+++ b/test/cctest/test-compiler.cc
@@ -25,6 +25,9 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// TODO(jochen): Remove this after the setting is turned on globally.
+#define V8_IMMINENT_DEPRECATION_WARNINGS
+
#include <stdlib.h>
#include <wchar.h>
@@ -262,8 +265,7 @@ TEST(Regression236) {
TEST(GetScriptLineNumber) {
LocalContext context;
v8::HandleScope scope(CcTest::isolate());
- v8::ScriptOrigin origin =
- v8::ScriptOrigin(v8::String::NewFromUtf8(CcTest::isolate(), "test"));
+ v8::ScriptOrigin origin = v8::ScriptOrigin(v8_str("test"));
const char function_f[] = "function f() {}";
const int max_rows = 1000;
const int buffer_size = max_rows + sizeof(function_f);
@@ -275,12 +277,13 @@ TEST(GetScriptLineNumber) {
if (i > 0)
buffer[i - 1] = '\n';
MemCopy(&buffer[i], function_f, sizeof(function_f) - 1);
- v8::Handle<v8::String> script_body =
- v8::String::NewFromUtf8(CcTest::isolate(), buffer.start());
- v8::Script::Compile(script_body, &origin)->Run();
- v8::Local<v8::Function> f =
- v8::Local<v8::Function>::Cast(context->Global()->Get(
- v8::String::NewFromUtf8(CcTest::isolate(), "f")));
+ v8::Local<v8::String> script_body = v8_str(buffer.start());
+ v8::Script::Compile(context.local(), script_body, &origin)
+ .ToLocalChecked()
+ ->Run(context.local())
+ .ToLocalChecked();
+ v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
+ context->Global()->Get(context.local(), v8_str("f")).ToLocalChecked());
CHECK_EQ(i, f->GetScriptLineNumber());
}
}
@@ -292,14 +295,16 @@ TEST(FeedbackVectorPreservedAcrossRecompiles) {
CcTest::InitializeVM();
if (!CcTest::i_isolate()->use_crankshaft()) return;
v8::HandleScope scope(CcTest::isolate());
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext();
// Make sure function f has a call that uses a type feedback slot.
CompileRun("function fun() {};"
"fun1 = fun;"
"function f(a) { a(); } f(fun1);");
- Handle<JSFunction> f = Handle<JSFunction>::cast(v8::Utils::OpenHandle(
- *v8::Handle<v8::Function>::Cast(CcTest::global()->Get(v8_str("f")))));
+ Handle<JSFunction> f = Handle<JSFunction>::cast(
+ v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
+ CcTest::global()->Get(context, v8_str("f")).ToLocalChecked())));
// We shouldn't have deoptimization support. We want to recompile and
// verify that our feedback vector preserves information.
@@ -329,6 +334,7 @@ TEST(FeedbackVectorUnaffectedByScopeChanges) {
if (i::FLAG_always_opt || !i::FLAG_lazy) return;
CcTest::InitializeVM();
v8::HandleScope scope(CcTest::isolate());
+ v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext();
CompileRun("function builder() {"
" call_target = function() { return 3; };"
@@ -342,9 +348,10 @@ TEST(FeedbackVectorUnaffectedByScopeChanges) {
"}"
"morphing_call = builder();");
- Handle<JSFunction> f = Handle<JSFunction>::cast(
- v8::Utils::OpenHandle(*v8::Handle<v8::Function>::Cast(
- CcTest::global()->Get(v8_str("morphing_call")))));
+ Handle<JSFunction> f = Handle<JSFunction>::cast(v8::Utils::OpenHandle(
+ *v8::Local<v8::Function>::Cast(CcTest::global()
+ ->Get(context, v8_str("morphing_call"))
+ .ToLocalChecked())));
// Not compiled, and so no feedback vector allocated yet.
CHECK(!f->shared()->is_compiled());
@@ -367,8 +374,9 @@ TEST(OptimizedCodeSharing1) {
v8::HandleScope scope(CcTest::isolate());
for (int i = 0; i < 3; i++) {
LocalContext env;
- env->Global()->Set(v8::String::NewFromUtf8(CcTest::isolate(), "x"),
- v8::Integer::New(CcTest::isolate(), i));
+ env->Global()
+ ->Set(env.local(), v8_str("x"), v8::Integer::New(CcTest::isolate(), i))
+ .FromJust();
CompileRun(
"function MakeClosure() {"
" return function() { return x; };"
@@ -381,10 +389,14 @@ TEST(OptimizedCodeSharing1) {
"var closure2 = MakeClosure();");
Handle<JSFunction> fun1 = Handle<JSFunction>::cast(
v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
- env->Global()->Get(v8_str("closure1")))));
+ env->Global()
+ ->Get(env.local(), v8_str("closure1"))
+ .ToLocalChecked())));
Handle<JSFunction> fun2 = Handle<JSFunction>::cast(
v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
- env->Global()->Get(v8_str("closure2")))));
+ env->Global()
+ ->Get(env.local(), v8_str("closure2"))
+ .ToLocalChecked())));
CHECK(fun1->IsOptimized() || !CcTest::i_isolate()->use_crankshaft());
CHECK(fun2->IsOptimized() || !CcTest::i_isolate()->use_crankshaft());
CHECK_EQ(fun1->code(), fun2->code());
@@ -410,9 +422,13 @@ TEST(OptimizedCodeSharing2) {
Handle<Code> reference_code;
{
LocalContext env;
- env->Global()->Set(v8::String::NewFromUtf8(CcTest::isolate(), "x"),
- v8::Integer::New(CcTest::isolate(), 23));
- script->GetUnboundScript()->BindToCurrentContext()->Run();
+ env->Global()
+ ->Set(env.local(), v8_str("x"), v8::Integer::New(CcTest::isolate(), 23))
+ .FromJust();
+ script->GetUnboundScript()
+ ->BindToCurrentContext()
+ ->Run(env.local())
+ .ToLocalChecked();
CompileRun(
"var closure0 = MakeClosure();"
"%DebugPrint(closure0());"
@@ -420,15 +436,21 @@ TEST(OptimizedCodeSharing2) {
"%DebugPrint(closure0());");
Handle<JSFunction> fun0 = Handle<JSFunction>::cast(
v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
- env->Global()->Get(v8_str("closure0")))));
+ env->Global()
+ ->Get(env.local(), v8_str("closure0"))
+ .ToLocalChecked())));
CHECK(fun0->IsOptimized() || !CcTest::i_isolate()->use_crankshaft());
reference_code = handle(fun0->code());
}
for (int i = 0; i < 3; i++) {
LocalContext env;
- env->Global()->Set(v8::String::NewFromUtf8(CcTest::isolate(), "x"),
- v8::Integer::New(CcTest::isolate(), i));
- script->GetUnboundScript()->BindToCurrentContext()->Run();
+ env->Global()
+ ->Set(env.local(), v8_str("x"), v8::Integer::New(CcTest::isolate(), i))
+ .FromJust();
+ script->GetUnboundScript()
+ ->BindToCurrentContext()
+ ->Run(env.local())
+ .ToLocalChecked();
CompileRun(
"var closure0 = MakeClosure();"
"%DebugPrint(closure0());"
@@ -438,10 +460,14 @@ TEST(OptimizedCodeSharing2) {
"var closure2 = MakeClosure();");
Handle<JSFunction> fun1 = Handle<JSFunction>::cast(
v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
- env->Global()->Get(v8_str("closure1")))));
+ env->Global()
+ ->Get(env.local(), v8_str("closure1"))
+ .ToLocalChecked())));
Handle<JSFunction> fun2 = Handle<JSFunction>::cast(
v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
- env->Global()->Get(v8_str("closure2")))));
+ env->Global()
+ ->Get(env.local(), v8_str("closure2"))
+ .ToLocalChecked())));
CHECK(fun1->IsOptimized() || !CcTest::i_isolate()->use_crankshaft());
CHECK(fun2->IsOptimized() || !CcTest::i_isolate()->use_crankshaft());
CHECK_EQ(*reference_code, fun1->code());
@@ -468,9 +494,13 @@ TEST(OptimizedCodeSharing3) {
Handle<Code> reference_code;
{
LocalContext env;
- env->Global()->Set(v8::String::NewFromUtf8(CcTest::isolate(), "x"),
- v8::Integer::New(CcTest::isolate(), 23));
- script->GetUnboundScript()->BindToCurrentContext()->Run();
+ env->Global()
+ ->Set(env.local(), v8_str("x"), v8::Integer::New(CcTest::isolate(), 23))
+ .FromJust();
+ script->GetUnboundScript()
+ ->BindToCurrentContext()
+ ->Run(env.local())
+ .ToLocalChecked();
CompileRun(
"var closure0 = MakeClosure();"
"%DebugPrint(closure0());"
@@ -478,7 +508,9 @@ TEST(OptimizedCodeSharing3) {
"%DebugPrint(closure0());");
Handle<JSFunction> fun0 = Handle<JSFunction>::cast(
v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
- env->Global()->Get(v8_str("closure0")))));
+ env->Global()
+ ->Get(env.local(), v8_str("closure0"))
+ .ToLocalChecked())));
CHECK(fun0->IsOptimized() || !CcTest::i_isolate()->use_crankshaft());
reference_code = handle(fun0->code());
// Evict only the context-dependent entry from the optimized code map. This
@@ -487,9 +519,13 @@ TEST(OptimizedCodeSharing3) {
}
for (int i = 0; i < 3; i++) {
LocalContext env;
- env->Global()->Set(v8::String::NewFromUtf8(CcTest::isolate(), "x"),
- v8::Integer::New(CcTest::isolate(), i));
- script->GetUnboundScript()->BindToCurrentContext()->Run();
+ env->Global()
+ ->Set(env.local(), v8_str("x"), v8::Integer::New(CcTest::isolate(), i))
+ .FromJust();
+ script->GetUnboundScript()
+ ->BindToCurrentContext()
+ ->Run(env.local())
+ .ToLocalChecked();
CompileRun(
"var closure0 = MakeClosure();"
"%DebugPrint(closure0());"
@@ -499,10 +535,14 @@ TEST(OptimizedCodeSharing3) {
"var closure2 = MakeClosure();");
Handle<JSFunction> fun1 = Handle<JSFunction>::cast(
v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
- env->Global()->Get(v8_str("closure1")))));
+ env->Global()
+ ->Get(env.local(), v8_str("closure1"))
+ .ToLocalChecked())));
Handle<JSFunction> fun2 = Handle<JSFunction>::cast(
v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
- env->Global()->Get(v8_str("closure2")))));
+ env->Global()
+ ->Get(env.local(), v8_str("closure2"))
+ .ToLocalChecked())));
CHECK(fun1->IsOptimized() || !CcTest::i_isolate()->use_crankshaft());
CHECK(fun2->IsOptimized() || !CcTest::i_isolate()->use_crankshaft());
CHECK_EQ(*reference_code, fun1->code());
@@ -516,28 +556,33 @@ TEST(CompileFunctionInContext) {
v8::HandleScope scope(CcTest::isolate());
LocalContext env;
CompileRun("var r = 10;");
- v8::Local<v8::Object> math =
- v8::Local<v8::Object>::Cast(env->Global()->Get(v8_str("Math")));
+ v8::Local<v8::Object> math = v8::Local<v8::Object>::Cast(
+ env->Global()->Get(env.local(), v8_str("Math")).ToLocalChecked());
v8::ScriptCompiler::Source script_source(v8_str(
"a = PI * r * r;"
"x = r * cos(PI);"
"y = r * sin(PI / 2);"));
- v8::Local<v8::Function> fun = v8::ScriptCompiler::CompileFunctionInContext(
- CcTest::isolate(), &script_source, env.local(), 0, NULL, 1, &math);
+ v8::Local<v8::Function> fun =
+ v8::ScriptCompiler::CompileFunctionInContext(env.local(), &script_source,
+ 0, NULL, 1, &math)
+ .ToLocalChecked();
CHECK(!fun.IsEmpty());
- fun->Call(env->Global(), 0, NULL);
- CHECK(env->Global()->Has(v8_str("a")));
- v8::Local<v8::Value> a = env->Global()->Get(v8_str("a"));
+ fun->Call(env.local(), env->Global(), 0, NULL).ToLocalChecked();
+ CHECK(env->Global()->Has(env.local(), v8_str("a")).FromJust());
+ v8::Local<v8::Value> a =
+ env->Global()->Get(env.local(), v8_str("a")).ToLocalChecked();
CHECK(a->IsNumber());
- CHECK(env->Global()->Has(v8_str("x")));
- v8::Local<v8::Value> x = env->Global()->Get(v8_str("x"));
+ CHECK(env->Global()->Has(env.local(), v8_str("x")).FromJust());
+ v8::Local<v8::Value> x =
+ env->Global()->Get(env.local(), v8_str("x")).ToLocalChecked();
CHECK(x->IsNumber());
- CHECK(env->Global()->Has(v8_str("y")));
- v8::Local<v8::Value> y = env->Global()->Get(v8_str("y"));
+ CHECK(env->Global()->Has(env.local(), v8_str("y")).FromJust());
+ v8::Local<v8::Value> y =
+ env->Global()->Get(env.local(), v8_str("y")).ToLocalChecked();
CHECK(y->IsNumber());
- CHECK_EQ(314.1592653589793, a->NumberValue());
- CHECK_EQ(-10.0, x->NumberValue());
- CHECK_EQ(10.0, y->NumberValue());
+ CHECK_EQ(314.1592653589793, a->NumberValue(env.local()).FromJust());
+ CHECK_EQ(-10.0, x->NumberValue(env.local()).FromJust());
+ CHECK_EQ(10.0, y->NumberValue(env.local()).FromJust());
}
@@ -552,17 +597,22 @@ TEST(CompileFunctionInContextComplex) {
"var a = {x: 8, y: 16};"
"var b = {x: 32};");
v8::Local<v8::Object> ext[2];
- ext[0] = v8::Local<v8::Object>::Cast(env->Global()->Get(v8_str("a")));
- ext[1] = v8::Local<v8::Object>::Cast(env->Global()->Get(v8_str("b")));
+ ext[0] = v8::Local<v8::Object>::Cast(
+ env->Global()->Get(env.local(), v8_str("a")).ToLocalChecked());
+ ext[1] = v8::Local<v8::Object>::Cast(
+ env->Global()->Get(env.local(), v8_str("b")).ToLocalChecked());
v8::ScriptCompiler::Source script_source(v8_str("result = x + y + z"));
- v8::Local<v8::Function> fun = v8::ScriptCompiler::CompileFunctionInContext(
- CcTest::isolate(), &script_source, env.local(), 0, NULL, 2, ext);
+ v8::Local<v8::Function> fun =
+ v8::ScriptCompiler::CompileFunctionInContext(env.local(), &script_source,
+ 0, NULL, 2, ext)
+ .ToLocalChecked();
CHECK(!fun.IsEmpty());
- fun->Call(env->Global(), 0, NULL);
- CHECK(env->Global()->Has(v8_str("result")));
- v8::Local<v8::Value> result = env->Global()->Get(v8_str("result"));
+ fun->Call(env.local(), env->Global(), 0, NULL).ToLocalChecked();
+ CHECK(env->Global()->Has(env.local(), v8_str("result")).FromJust());
+ v8::Local<v8::Value> result =
+ env->Global()->Get(env.local(), v8_str("result")).ToLocalChecked();
CHECK(result->IsNumber());
- CHECK_EQ(52.0, result->NumberValue());
+ CHECK_EQ(52.0, result->NumberValue(env.local()).FromJust());
}
@@ -572,18 +622,22 @@ TEST(CompileFunctionInContextArgs) {
LocalContext env;
CompileRun("var a = {x: 23};");
v8::Local<v8::Object> ext[1];
- ext[0] = v8::Local<v8::Object>::Cast(env->Global()->Get(v8_str("a")));
+ ext[0] = v8::Local<v8::Object>::Cast(
+ env->Global()->Get(env.local(), v8_str("a")).ToLocalChecked());
v8::ScriptCompiler::Source script_source(v8_str("result = x + b"));
v8::Local<v8::String> arg = v8_str("b");
- v8::Local<v8::Function> fun = v8::ScriptCompiler::CompileFunctionInContext(
- CcTest::isolate(), &script_source, env.local(), 1, &arg, 1, ext);
+ v8::Local<v8::Function> fun =
+ v8::ScriptCompiler::CompileFunctionInContext(env.local(), &script_source,
+ 1, &arg, 1, ext)
+ .ToLocalChecked();
CHECK(!fun.IsEmpty());
v8::Local<v8::Value> b_value = v8::Number::New(CcTest::isolate(), 42.0);
- fun->Call(env->Global(), 1, &b_value);
- CHECK(env->Global()->Has(v8_str("result")));
- v8::Local<v8::Value> result = env->Global()->Get(v8_str("result"));
+ fun->Call(env.local(), env->Global(), 1, &b_value).ToLocalChecked();
+ CHECK(env->Global()->Has(env.local(), v8_str("result")).FromJust());
+ v8::Local<v8::Value> result =
+ env->Global()->Get(env.local(), v8_str("result")).ToLocalChecked();
CHECK(result->IsNumber());
- CHECK_EQ(65.0, result->NumberValue());
+ CHECK_EQ(65.0, result->NumberValue(env.local()).FromJust());
}
@@ -593,19 +647,23 @@ TEST(CompileFunctionInContextComments) {
LocalContext env;
CompileRun("var a = {x: 23, y: 1, z: 2};");
v8::Local<v8::Object> ext[1];
- ext[0] = v8::Local<v8::Object>::Cast(env->Global()->Get(v8_str("a")));
+ ext[0] = v8::Local<v8::Object>::Cast(
+ env->Global()->Get(env.local(), v8_str("a")).ToLocalChecked());
v8::ScriptCompiler::Source script_source(
v8_str("result = /* y + */ x + b // + z"));
v8::Local<v8::String> arg = v8_str("b");
- v8::Local<v8::Function> fun = v8::ScriptCompiler::CompileFunctionInContext(
- CcTest::isolate(), &script_source, env.local(), 1, &arg, 1, ext);
+ v8::Local<v8::Function> fun =
+ v8::ScriptCompiler::CompileFunctionInContext(env.local(), &script_source,
+ 1, &arg, 1, ext)
+ .ToLocalChecked();
CHECK(!fun.IsEmpty());
v8::Local<v8::Value> b_value = v8::Number::New(CcTest::isolate(), 42.0);
- fun->Call(env->Global(), 1, &b_value);
- CHECK(env->Global()->Has(v8_str("result")));
- v8::Local<v8::Value> result = env->Global()->Get(v8_str("result"));
+ fun->Call(env.local(), env->Global(), 1, &b_value).ToLocalChecked();
+ CHECK(env->Global()->Has(env.local(), v8_str("result")).FromJust());
+ v8::Local<v8::Value> result =
+ env->Global()->Get(env.local(), v8_str("result")).ToLocalChecked();
CHECK(result->IsNumber());
- CHECK_EQ(65.0, result->NumberValue());
+ CHECK_EQ(65.0, result->NumberValue(env.local()).FromJust());
}
@@ -615,9 +673,9 @@ TEST(CompileFunctionInContextNonIdentifierArgs) {
LocalContext env;
v8::ScriptCompiler::Source script_source(v8_str("result = 1"));
v8::Local<v8::String> arg = v8_str("b }");
- v8::Local<v8::Function> fun = v8::ScriptCompiler::CompileFunctionInContext(
- CcTest::isolate(), &script_source, env.local(), 1, &arg, 0, NULL);
- CHECK(fun.IsEmpty());
+ CHECK(v8::ScriptCompiler::CompileFunctionInContext(
+ env.local(), &script_source, 1, &arg, 0, NULL)
+ .IsEmpty());
}
@@ -629,12 +687,14 @@ TEST(CompileFunctionInContextScriptOrigin) {
v8::Integer::New(CcTest::isolate(), 22),
v8::Integer::New(CcTest::isolate(), 41));
v8::ScriptCompiler::Source script_source(v8_str("throw new Error()"), origin);
- v8::Local<v8::Function> fun = v8::ScriptCompiler::CompileFunctionInContext(
- CcTest::isolate(), &script_source, env.local(), 0, NULL, 0, NULL);
+ v8::Local<v8::Function> fun =
+ v8::ScriptCompiler::CompileFunctionInContext(env.local(), &script_source,
+ 0, NULL, 0, NULL)
+ .ToLocalChecked();
CHECK(!fun.IsEmpty());
- v8::TryCatch try_catch;
+ v8::TryCatch try_catch(CcTest::isolate());
CcTest::isolate()->SetCaptureStackTraceForUncaughtExceptions(true);
- fun->Call(env->Global(), 0, NULL);
+ CHECK(fun->Call(env.local(), env->Global(), 0, NULL).IsEmpty());
CHECK(try_catch.HasCaught());
CHECK(!try_catch.Exception().IsEmpty());
v8::Local<v8::StackTrace> stack =
@@ -648,10 +708,11 @@ TEST(CompileFunctionInContextScriptOrigin) {
#ifdef ENABLE_DISASSEMBLER
-static Handle<JSFunction> GetJSFunction(v8::Handle<v8::Object> obj,
+static Handle<JSFunction> GetJSFunction(v8::Local<v8::Object> obj,
const char* property_name) {
- v8::Local<v8::Function> fun =
- v8::Local<v8::Function>::Cast(obj->Get(v8_str(property_name)));
+ v8::Local<v8::Function> fun = v8::Local<v8::Function>::Cast(
+ obj->Get(CcTest::isolate()->GetCurrentContext(), v8_str(property_name))
+ .ToLocalChecked());
return Handle<JSFunction>::cast(v8::Utils::OpenHandle(*fun));
}
« no previous file with comments | « no previous file | test/cctest/test-deoptimization.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698