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

Side by Side Diff: test/cctest/test-api.cc

Issue 15129002: stop using AsciiValue (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: adding deprecation notice Created 7 years, 7 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/extensions/statistics-extension.cc ('k') | test/cctest/test-debug.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 using ::v8::TryCatch; 73 using ::v8::TryCatch;
74 using ::v8::Undefined; 74 using ::v8::Undefined;
75 using ::v8::UniqueId; 75 using ::v8::UniqueId;
76 using ::v8::V8; 76 using ::v8::V8;
77 using ::v8::Value; 77 using ::v8::Value;
78 78
79 79
80 static void ExpectString(const char* code, const char* expected) { 80 static void ExpectString(const char* code, const char* expected) {
81 Local<Value> result = CompileRun(code); 81 Local<Value> result = CompileRun(code);
82 CHECK(result->IsString()); 82 CHECK(result->IsString());
83 String::AsciiValue ascii(result); 83 String::Utf8Value utf8(result);
84 CHECK_EQ(expected, *ascii); 84 CHECK_EQ(expected, *utf8);
85 } 85 }
86 86
87 static void ExpectInt32(const char* code, int expected) { 87 static void ExpectInt32(const char* code, int expected) {
88 Local<Value> result = CompileRun(code); 88 Local<Value> result = CompileRun(code);
89 CHECK(result->IsInt32()); 89 CHECK(result->IsInt32());
90 CHECK_EQ(expected, result->Int32Value()); 90 CHECK_EQ(expected, result->Int32Value());
91 } 91 }
92 92
93 static void ExpectBoolean(const char* code, bool expected) { 93 static void ExpectBoolean(const char* code, bool expected) {
94 Local<Value> result = CompileRun(code); 94 Local<Value> result = CompileRun(code);
(...skipping 1338 matching lines...) Expand 10 before | Expand all | Expand 10 after
1433 1433
1434 Handle<Value> EmptyInterceptorSetter(Local<String> name, 1434 Handle<Value> EmptyInterceptorSetter(Local<String> name,
1435 Local<Value> value, 1435 Local<Value> value,
1436 const AccessorInfo& info) { 1436 const AccessorInfo& info) {
1437 return Handle<Value>(); 1437 return Handle<Value>();
1438 } 1438 }
1439 1439
1440 Handle<Value> InterceptorGetter(Local<String> name, 1440 Handle<Value> InterceptorGetter(Local<String> name,
1441 const AccessorInfo& info) { 1441 const AccessorInfo& info) {
1442 // Intercept names that start with 'interceptor_'. 1442 // Intercept names that start with 'interceptor_'.
1443 String::AsciiValue ascii(name); 1443 String::Utf8Value utf8(name);
1444 char* name_str = *ascii; 1444 char* name_str = *utf8;
1445 char prefix[] = "interceptor_"; 1445 char prefix[] = "interceptor_";
1446 int i; 1446 int i;
1447 for (i = 0; name_str[i] && prefix[i]; ++i) { 1447 for (i = 0; name_str[i] && prefix[i]; ++i) {
1448 if (name_str[i] != prefix[i]) return Handle<Value>(); 1448 if (name_str[i] != prefix[i]) return Handle<Value>();
1449 } 1449 }
1450 Handle<Object> self = info.This(); 1450 Handle<Object> self = info.This();
1451 return self->GetHiddenValue(v8_str(name_str + i)); 1451 return self->GetHiddenValue(v8_str(name_str + i));
1452 } 1452 }
1453 1453
1454 Handle<Value> InterceptorSetter(Local<String> name, 1454 Handle<Value> InterceptorSetter(Local<String> name,
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
1694 0, 0, 0, 0, 1694 0, 0, 0, 0,
1695 v8_str("data")); 1695 v8_str("data"));
1696 LocalContext env; 1696 LocalContext env;
1697 env->Global()->Set(v8_str("obj"), 1697 env->Global()->Set(v8_str("obj"),
1698 templ->GetFunction()->NewInstance()); 1698 templ->GetFunction()->NewInstance());
1699 CHECK_EQ(echo_named_call_count, 0); 1699 CHECK_EQ(echo_named_call_count, 0);
1700 v8_compile("obj.x")->Run(); 1700 v8_compile("obj.x")->Run();
1701 CHECK_EQ(echo_named_call_count, 1); 1701 CHECK_EQ(echo_named_call_count, 1);
1702 const char* code = "var str = 'oddle'; obj[str] + obj.poddle;"; 1702 const char* code = "var str = 'oddle'; obj[str] + obj.poddle;";
1703 v8::Handle<Value> str = CompileRun(code); 1703 v8::Handle<Value> str = CompileRun(code);
1704 String::AsciiValue value(str); 1704 String::Utf8Value value(str);
1705 CHECK_EQ(*value, "oddlepoddle"); 1705 CHECK_EQ(*value, "oddlepoddle");
1706 // Check default behavior 1706 // Check default behavior
1707 CHECK_EQ(v8_compile("obj.flob = 10;")->Run()->Int32Value(), 10); 1707 CHECK_EQ(v8_compile("obj.flob = 10;")->Run()->Int32Value(), 10);
1708 CHECK(v8_compile("'myProperty' in obj")->Run()->BooleanValue()); 1708 CHECK(v8_compile("'myProperty' in obj")->Run()->BooleanValue());
1709 CHECK(v8_compile("delete obj.myProperty")->Run()->BooleanValue()); 1709 CHECK(v8_compile("delete obj.myProperty")->Run()->BooleanValue());
1710 } 1710 }
1711 1711
1712 1712
1713 int echo_indexed_call_count = 0; 1713 int echo_indexed_call_count = 0;
1714 1714
(...skipping 1464 matching lines...) Expand 10 before | Expand all | Expand 10 after
3179 3179
3180 3180
3181 THREADED_TEST(ScriptException) { 3181 THREADED_TEST(ScriptException) {
3182 LocalContext env; 3182 LocalContext env;
3183 v8::HandleScope scope(env->GetIsolate()); 3183 v8::HandleScope scope(env->GetIsolate());
3184 Local<Script> script = Script::Compile(v8_str("throw 'panama!';")); 3184 Local<Script> script = Script::Compile(v8_str("throw 'panama!';"));
3185 v8::TryCatch try_catch; 3185 v8::TryCatch try_catch;
3186 Local<Value> result = script->Run(); 3186 Local<Value> result = script->Run();
3187 CHECK(result.IsEmpty()); 3187 CHECK(result.IsEmpty());
3188 CHECK(try_catch.HasCaught()); 3188 CHECK(try_catch.HasCaught());
3189 String::AsciiValue exception_value(try_catch.Exception()); 3189 String::Utf8Value exception_value(try_catch.Exception());
3190 CHECK_EQ(*exception_value, "panama!"); 3190 CHECK_EQ(*exception_value, "panama!");
3191 } 3191 }
3192 3192
3193 3193
3194 TEST(TryCatchCustomException) { 3194 TEST(TryCatchCustomException) {
3195 LocalContext env; 3195 LocalContext env;
3196 v8::HandleScope scope(env->GetIsolate()); 3196 v8::HandleScope scope(env->GetIsolate());
3197 v8::TryCatch try_catch; 3197 v8::TryCatch try_catch;
3198 CompileRun("function CustomError() { this.a = 'b'; }" 3198 CompileRun("function CustomError() { this.a = 'b'; }"
3199 "(function f() { throw new CustomError(); })();"); 3199 "(function f() { throw new CustomError(); })();");
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
3340 prop = v8_str("absent"); 3340 prop = v8_str("absent");
3341 CHECK_EQ(v8::None, context->Global()->GetPropertyAttributes(prop)); 3341 CHECK_EQ(v8::None, context->Global()->GetPropertyAttributes(prop));
3342 Local<Value> fake_prop = v8_num(1); 3342 Local<Value> fake_prop = v8_num(1);
3343 CHECK_EQ(v8::None, context->Global()->GetPropertyAttributes(fake_prop)); 3343 CHECK_EQ(v8::None, context->Global()->GetPropertyAttributes(fake_prop));
3344 // exception 3344 // exception
3345 TryCatch try_catch; 3345 TryCatch try_catch;
3346 Local<Value> exception = 3346 Local<Value> exception =
3347 CompileRun("({ toString: function() { throw 'exception';} })"); 3347 CompileRun("({ toString: function() { throw 'exception';} })");
3348 CHECK_EQ(v8::None, context->Global()->GetPropertyAttributes(exception)); 3348 CHECK_EQ(v8::None, context->Global()->GetPropertyAttributes(exception));
3349 CHECK(try_catch.HasCaught()); 3349 CHECK(try_catch.HasCaught());
3350 String::AsciiValue exception_value(try_catch.Exception()); 3350 String::Utf8Value exception_value(try_catch.Exception());
3351 CHECK_EQ("exception", *exception_value); 3351 CHECK_EQ("exception", *exception_value);
3352 try_catch.Reset(); 3352 try_catch.Reset();
3353 } 3353 }
3354 3354
3355 3355
3356 THREADED_TEST(Array) { 3356 THREADED_TEST(Array) {
3357 LocalContext context; 3357 LocalContext context;
3358 v8::HandleScope scope(context->GetIsolate()); 3358 v8::HandleScope scope(context->GetIsolate());
3359 Local<v8::Array> array = v8::Array::New(); 3359 Local<v8::Array> array = v8::Array::New();
3360 CHECK_EQ(0, array->Length()); 3360 CHECK_EQ(0, array->Length());
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
3631 CHECK_EQ(4, a4->Length()); 3631 CHECK_EQ(4, a4->Length());
3632 CHECK_EQ(7.7, a4->Get(v8::Integer::New(0))->NumberValue()); 3632 CHECK_EQ(7.7, a4->Get(v8::Integer::New(0))->NumberValue());
3633 CHECK_EQ(8.8, a4->Get(v8::Integer::New(1))->NumberValue()); 3633 CHECK_EQ(8.8, a4->Get(v8::Integer::New(1))->NumberValue());
3634 CHECK_EQ(9.9, a4->Get(v8::Integer::New(2))->NumberValue()); 3634 CHECK_EQ(9.9, a4->Get(v8::Integer::New(2))->NumberValue());
3635 CHECK_EQ(10.11, a4->Get(v8::Integer::New(3))->NumberValue()); 3635 CHECK_EQ(10.11, a4->Get(v8::Integer::New(3))->NumberValue());
3636 } 3636 }
3637 3637
3638 3638
3639 static void CheckUncle(v8::TryCatch* try_catch) { 3639 static void CheckUncle(v8::TryCatch* try_catch) {
3640 CHECK(try_catch->HasCaught()); 3640 CHECK(try_catch->HasCaught());
3641 String::AsciiValue str_value(try_catch->Exception()); 3641 String::Utf8Value str_value(try_catch->Exception());
3642 CHECK_EQ(*str_value, "uncle?"); 3642 CHECK_EQ(*str_value, "uncle?");
3643 try_catch->Reset(); 3643 try_catch->Reset();
3644 } 3644 }
3645 3645
3646 3646
3647 THREADED_TEST(ConversionNumber) { 3647 THREADED_TEST(ConversionNumber) {
3648 LocalContext env; 3648 LocalContext env;
3649 v8::HandleScope scope(env->GetIsolate()); 3649 v8::HandleScope scope(env->GetIsolate());
3650 // Very large number. 3650 // Very large number.
3651 CompileRun("var obj = Math.pow(2,32) * 1237;"); 3651 CompileRun("var obj = Math.pow(2,32) * 1237;");
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
4009 templ->Set(v8_str("ThrowFromC"), 4009 templ->Set(v8_str("ThrowFromC"),
4010 v8::FunctionTemplate::New(ThrowFromC)); 4010 v8::FunctionTemplate::New(ThrowFromC));
4011 LocalContext context(0, templ); 4011 LocalContext context(0, templ);
4012 4012
4013 v8::TryCatch try_catch; 4013 v8::TryCatch try_catch;
4014 Local<Script> script 4014 Local<Script> script
4015 = Script::Compile(v8_str("ThrowFromC(); throw 'panama';")); 4015 = Script::Compile(v8_str("ThrowFromC(); throw 'panama';"));
4016 Local<Value> result = script->Run(); 4016 Local<Value> result = script->Run();
4017 CHECK(result.IsEmpty()); 4017 CHECK(result.IsEmpty());
4018 CHECK(try_catch.HasCaught()); 4018 CHECK(try_catch.HasCaught());
4019 String::AsciiValue exception_value(try_catch.Exception()); 4019 String::Utf8Value exception_value(try_catch.Exception());
4020 CHECK_EQ("konto", *exception_value); 4020 CHECK_EQ("konto", *exception_value);
4021 } 4021 }
4022 4022
4023 4023
4024 4024
4025 v8::Handle<Value> CThrowCountDown(const v8::Arguments& args) { 4025 v8::Handle<Value> CThrowCountDown(const v8::Arguments& args) {
4026 ApiTestFuzzer::Fuzz(); 4026 ApiTestFuzzer::Fuzz();
4027 CHECK_EQ(4, args.Length()); 4027 CHECK_EQ(4, args.Length());
4028 int count = args[0]->Int32Value(); 4028 int count = args[0]->Int32Value();
4029 int cInterval = args[2]->Int32Value(); 4029 int cInterval = args[2]->Int32Value();
(...skipping 351 matching lines...) Expand 10 before | Expand all | Expand 10 after
4381 "obj.x")); 4381 "obj.x"));
4382 result = script_define->Run(); 4382 result = script_define->Run();
4383 CHECK_EQ(result, v8_num(43)); 4383 CHECK_EQ(result, v8_num(43));
4384 result = script_desc->Run(); 4384 result = script_desc->Run();
4385 CHECK_EQ(result->BooleanValue(), false); 4385 CHECK_EQ(result->BooleanValue(), false);
4386 4386
4387 // Make sure that it is not possible to redefine again 4387 // Make sure that it is not possible to redefine again
4388 v8::TryCatch try_catch; 4388 v8::TryCatch try_catch;
4389 result = script_define->Run(); 4389 result = script_define->Run();
4390 CHECK(try_catch.HasCaught()); 4390 CHECK(try_catch.HasCaught());
4391 String::AsciiValue exception_value(try_catch.Exception()); 4391 String::Utf8Value exception_value(try_catch.Exception());
4392 CHECK_EQ(*exception_value, "TypeError: Cannot redefine property: x"); 4392 CHECK_EQ(*exception_value, "TypeError: Cannot redefine property: x");
4393 } 4393 }
4394 4394
4395 THREADED_TEST(DefinePropertyOnDefineGetterSetter) { 4395 THREADED_TEST(DefinePropertyOnDefineGetterSetter) {
4396 v8::HandleScope scope(v8::Isolate::GetCurrent()); 4396 v8::HandleScope scope(v8::Isolate::GetCurrent());
4397 Local<ObjectTemplate> templ = ObjectTemplate::New(); 4397 Local<ObjectTemplate> templ = ObjectTemplate::New();
4398 templ->SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut")); 4398 templ->SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut"));
4399 LocalContext context; 4399 LocalContext context;
4400 context->Global()->Set(v8_str("obj"), templ->NewInstance()); 4400 context->Global()->Set(v8_str("obj"), templ->NewInstance());
4401 4401
(...skipping 24 matching lines...) Expand all
4426 "obj.x")); 4426 "obj.x"));
4427 result = script_define->Run(); 4427 result = script_define->Run();
4428 CHECK_EQ(result, v8_num(43)); 4428 CHECK_EQ(result, v8_num(43));
4429 result = script_desc->Run(); 4429 result = script_desc->Run();
4430 4430
4431 CHECK_EQ(result->BooleanValue(), false); 4431 CHECK_EQ(result->BooleanValue(), false);
4432 4432
4433 v8::TryCatch try_catch; 4433 v8::TryCatch try_catch;
4434 result = script_define->Run(); 4434 result = script_define->Run();
4435 CHECK(try_catch.HasCaught()); 4435 CHECK(try_catch.HasCaught());
4436 String::AsciiValue exception_value(try_catch.Exception()); 4436 String::Utf8Value exception_value(try_catch.Exception());
4437 CHECK_EQ(*exception_value, "TypeError: Cannot redefine property: x"); 4437 CHECK_EQ(*exception_value, "TypeError: Cannot redefine property: x");
4438 } 4438 }
4439 4439
4440 4440
4441 static v8::Handle<v8::Object> GetGlobalProperty(LocalContext* context, 4441 static v8::Handle<v8::Object> GetGlobalProperty(LocalContext* context,
4442 char const* name) { 4442 char const* name) {
4443 return v8::Handle<v8::Object>::Cast((*context)->Global()->Get(v8_str(name))); 4443 return v8::Handle<v8::Object>::Cast((*context)->Global()->Get(v8_str(name)));
4444 } 4444 }
4445 4445
4446 4446
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
4544 CHECK(!GetGlobalProperty(&context, "obj1")-> 4544 CHECK(!GetGlobalProperty(&context, "obj1")->
4545 SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut"))); 4545 SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut")));
4546 CHECK(!GetGlobalProperty(&context, "obj2")-> 4546 CHECK(!GetGlobalProperty(&context, "obj2")->
4547 SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut"))); 4547 SetAccessor(v8_str("x"), GetXValue, NULL, v8_str("donut")));
4548 4548
4549 { 4549 {
4550 v8::TryCatch try_catch; 4550 v8::TryCatch try_catch;
4551 CompileRun("Object.defineProperty(obj1, 'x'," 4551 CompileRun("Object.defineProperty(obj1, 'x',"
4552 "{get: function() { return 'func'; }})"); 4552 "{get: function() { return 'func'; }})");
4553 CHECK(try_catch.HasCaught()); 4553 CHECK(try_catch.HasCaught());
4554 String::AsciiValue exception_value(try_catch.Exception()); 4554 String::Utf8Value exception_value(try_catch.Exception());
4555 CHECK_EQ(*exception_value, "TypeError: Cannot redefine property: x"); 4555 CHECK_EQ(*exception_value, "TypeError: Cannot redefine property: x");
4556 } 4556 }
4557 { 4557 {
4558 v8::TryCatch try_catch; 4558 v8::TryCatch try_catch;
4559 CompileRun("Object.defineProperty(obj2, 'x'," 4559 CompileRun("Object.defineProperty(obj2, 'x',"
4560 "{get: function() { return 'func'; }})"); 4560 "{get: function() { return 'func'; }})");
4561 CHECK(try_catch.HasCaught()); 4561 CHECK(try_catch.HasCaught());
4562 String::AsciiValue exception_value(try_catch.Exception()); 4562 String::Utf8Value exception_value(try_catch.Exception());
4563 CHECK_EQ(*exception_value, "TypeError: Cannot redefine property: x"); 4563 CHECK_EQ(*exception_value, "TypeError: Cannot redefine property: x");
4564 } 4564 }
4565 } 4565 }
4566 4566
4567 4567
4568 static v8::Handle<Value> Get239Value(Local<String> name, 4568 static v8::Handle<Value> Get239Value(Local<String> name,
4569 const AccessorInfo& info) { 4569 const AccessorInfo& info) {
4570 ApiTestFuzzer::Fuzz(); 4570 ApiTestFuzzer::Fuzz();
4571 CHECK_EQ(info.Data(), v8_str("donut")); 4571 CHECK_EQ(info.Data(), v8_str("donut"));
4572 CHECK_EQ(name, v8_str("239")); 4572 CHECK_EQ(name, v8_str("239"));
(...skipping 2606 matching lines...) Expand 10 before | Expand all | Expand 10 after
7179 Function::Cast(*trouble_caller)->Call(global, 0, NULL); 7179 Function::Cast(*trouble_caller)->Call(global, 0, NULL);
7180 CHECK_EQ(1, report_count); 7180 CHECK_EQ(1, report_count);
7181 v8::V8::RemoveMessageListeners(ApiUncaughtExceptionTestListener); 7181 v8::V8::RemoveMessageListeners(ApiUncaughtExceptionTestListener);
7182 } 7182 }
7183 7183
7184 static const char* script_resource_name = "ExceptionInNativeScript.js"; 7184 static const char* script_resource_name = "ExceptionInNativeScript.js";
7185 static void ExceptionInNativeScriptTestListener(v8::Handle<v8::Message> message, 7185 static void ExceptionInNativeScriptTestListener(v8::Handle<v8::Message> message,
7186 v8::Handle<Value>) { 7186 v8::Handle<Value>) {
7187 v8::Handle<v8::Value> name_val = message->GetScriptResourceName(); 7187 v8::Handle<v8::Value> name_val = message->GetScriptResourceName();
7188 CHECK(!name_val.IsEmpty() && name_val->IsString()); 7188 CHECK(!name_val.IsEmpty() && name_val->IsString());
7189 v8::String::AsciiValue name(message->GetScriptResourceName()); 7189 v8::String::Utf8Value name(message->GetScriptResourceName());
7190 CHECK_EQ(script_resource_name, *name); 7190 CHECK_EQ(script_resource_name, *name);
7191 CHECK_EQ(3, message->GetLineNumber()); 7191 CHECK_EQ(3, message->GetLineNumber());
7192 v8::String::AsciiValue source_line(message->GetSourceLine()); 7192 v8::String::Utf8Value source_line(message->GetSourceLine());
7193 CHECK_EQ(" new o.foo();", *source_line); 7193 CHECK_EQ(" new o.foo();", *source_line);
7194 } 7194 }
7195 7195
7196 TEST(ExceptionInNativeScript) { 7196 TEST(ExceptionInNativeScript) {
7197 LocalContext env; 7197 LocalContext env;
7198 v8::HandleScope scope(env->GetIsolate()); 7198 v8::HandleScope scope(env->GetIsolate());
7199 v8::V8::AddMessageListener(ExceptionInNativeScriptTestListener); 7199 v8::V8::AddMessageListener(ExceptionInNativeScriptTestListener);
7200 7200
7201 Local<v8::FunctionTemplate> fun = v8::FunctionTemplate::New(TroubleCallback); 7201 Local<v8::FunctionTemplate> fun = v8::FunctionTemplate::New(TroubleCallback);
7202 v8::Local<v8::Object> global = env->Global(); 7202 v8::Local<v8::Object> global = env->Global();
(...skipping 1838 matching lines...) Expand 10 before | Expand all | Expand 10 after
9041 value = object1->Get(v8_str("a")); 9041 value = object1->Get(v8_str("a"));
9042 CHECK(value->IsInt32()); 9042 CHECK(value->IsInt32());
9043 CHECK(!try_catch.HasCaught()); 9043 CHECK(!try_catch.HasCaught());
9044 CHECK_EQ(28, value->Int32Value()); 9044 CHECK_EQ(28, value->Int32Value());
9045 9045
9046 // Call the Object's constructor with a String. 9046 // Call the Object's constructor with a String.
9047 value = CompileRun( 9047 value = CompileRun(
9048 "(function() { var o = new obj('tipli'); return o.a; })()"); 9048 "(function() { var o = new obj('tipli'); return o.a; })()");
9049 CHECK(!try_catch.HasCaught()); 9049 CHECK(!try_catch.HasCaught());
9050 CHECK(value->IsString()); 9050 CHECK(value->IsString());
9051 String::AsciiValue string_value1(value->ToString()); 9051 String::Utf8Value string_value1(value->ToString());
9052 CHECK_EQ("tipli", *string_value1); 9052 CHECK_EQ("tipli", *string_value1);
9053 9053
9054 Local<Value> args2[] = { v8_str("tipli") }; 9054 Local<Value> args2[] = { v8_str("tipli") };
9055 Local<Value> value_obj2 = instance->CallAsConstructor(1, args2); 9055 Local<Value> value_obj2 = instance->CallAsConstructor(1, args2);
9056 CHECK(value_obj2->IsObject()); 9056 CHECK(value_obj2->IsObject());
9057 Local<Object> object2 = Local<Object>::Cast(value_obj2); 9057 Local<Object> object2 = Local<Object>::Cast(value_obj2);
9058 value = object2->Get(v8_str("a")); 9058 value = object2->Get(v8_str("a"));
9059 CHECK(!try_catch.HasCaught()); 9059 CHECK(!try_catch.HasCaught());
9060 CHECK(value->IsString()); 9060 CHECK(value->IsString());
9061 String::AsciiValue string_value2(value->ToString()); 9061 String::Utf8Value string_value2(value->ToString());
9062 CHECK_EQ("tipli", *string_value2); 9062 CHECK_EQ("tipli", *string_value2);
9063 9063
9064 // Call the Object's constructor with a Boolean. 9064 // Call the Object's constructor with a Boolean.
9065 value = CompileRun("(function() { var o = new obj(true); return o.a; })()"); 9065 value = CompileRun("(function() { var o = new obj(true); return o.a; })()");
9066 CHECK(!try_catch.HasCaught()); 9066 CHECK(!try_catch.HasCaught());
9067 CHECK(value->IsBoolean()); 9067 CHECK(value->IsBoolean());
9068 CHECK_EQ(true, value->BooleanValue()); 9068 CHECK_EQ(true, value->BooleanValue());
9069 9069
9070 Handle<Value> args3[] = { v8::True() }; 9070 Handle<Value> args3[] = { v8::True() };
9071 Local<Value> value_obj3 = instance->CallAsConstructor(1, args3); 9071 Local<Value> value_obj3 = instance->CallAsConstructor(1, args3);
(...skipping 26 matching lines...) Expand all
9098 // Check exception handling when there is no constructor set for the Object. 9098 // Check exception handling when there is no constructor set for the Object.
9099 { Local<ObjectTemplate> instance_template = ObjectTemplate::New(); 9099 { Local<ObjectTemplate> instance_template = ObjectTemplate::New();
9100 Local<Object> instance = instance_template->NewInstance(); 9100 Local<Object> instance = instance_template->NewInstance();
9101 context->Global()->Set(v8_str("obj2"), instance); 9101 context->Global()->Set(v8_str("obj2"), instance);
9102 v8::TryCatch try_catch; 9102 v8::TryCatch try_catch;
9103 Local<Value> value; 9103 Local<Value> value;
9104 CHECK(!try_catch.HasCaught()); 9104 CHECK(!try_catch.HasCaught());
9105 9105
9106 value = CompileRun("new obj2(28)"); 9106 value = CompileRun("new obj2(28)");
9107 CHECK(try_catch.HasCaught()); 9107 CHECK(try_catch.HasCaught());
9108 String::AsciiValue exception_value1(try_catch.Exception()); 9108 String::Utf8Value exception_value1(try_catch.Exception());
9109 CHECK_EQ("TypeError: object is not a function", *exception_value1); 9109 CHECK_EQ("TypeError: object is not a function", *exception_value1);
9110 try_catch.Reset(); 9110 try_catch.Reset();
9111 9111
9112 Local<Value> args[] = { v8_num(29) }; 9112 Local<Value> args[] = { v8_num(29) };
9113 value = instance->CallAsConstructor(1, args); 9113 value = instance->CallAsConstructor(1, args);
9114 CHECK(try_catch.HasCaught()); 9114 CHECK(try_catch.HasCaught());
9115 String::AsciiValue exception_value2(try_catch.Exception()); 9115 String::Utf8Value exception_value2(try_catch.Exception());
9116 CHECK_EQ("TypeError: #<Object> is not a function", *exception_value2); 9116 CHECK_EQ("TypeError: #<Object> is not a function", *exception_value2);
9117 try_catch.Reset(); 9117 try_catch.Reset();
9118 } 9118 }
9119 9119
9120 // Check the case when constructor throws exception. 9120 // Check the case when constructor throws exception.
9121 { Local<ObjectTemplate> instance_template = ObjectTemplate::New(); 9121 { Local<ObjectTemplate> instance_template = ObjectTemplate::New();
9122 instance_template->SetCallAsFunctionHandler(ThrowValue); 9122 instance_template->SetCallAsFunctionHandler(ThrowValue);
9123 Local<Object> instance = instance_template->NewInstance(); 9123 Local<Object> instance = instance_template->NewInstance();
9124 context->Global()->Set(v8_str("obj3"), instance); 9124 context->Global()->Set(v8_str("obj3"), instance);
9125 v8::TryCatch try_catch; 9125 v8::TryCatch try_catch;
9126 Local<Value> value; 9126 Local<Value> value;
9127 CHECK(!try_catch.HasCaught()); 9127 CHECK(!try_catch.HasCaught());
9128 9128
9129 value = CompileRun("new obj3(22)"); 9129 value = CompileRun("new obj3(22)");
9130 CHECK(try_catch.HasCaught()); 9130 CHECK(try_catch.HasCaught());
9131 String::AsciiValue exception_value1(try_catch.Exception()); 9131 String::Utf8Value exception_value1(try_catch.Exception());
9132 CHECK_EQ("22", *exception_value1); 9132 CHECK_EQ("22", *exception_value1);
9133 try_catch.Reset(); 9133 try_catch.Reset();
9134 9134
9135 Local<Value> args[] = { v8_num(23) }; 9135 Local<Value> args[] = { v8_num(23) };
9136 value = instance->CallAsConstructor(1, args); 9136 value = instance->CallAsConstructor(1, args);
9137 CHECK(try_catch.HasCaught()); 9137 CHECK(try_catch.HasCaught());
9138 String::AsciiValue exception_value2(try_catch.Exception()); 9138 String::Utf8Value exception_value2(try_catch.Exception());
9139 CHECK_EQ("23", *exception_value2); 9139 CHECK_EQ("23", *exception_value2);
9140 try_catch.Reset(); 9140 try_catch.Reset();
9141 } 9141 }
9142 9142
9143 // Check whether constructor returns with an object or non-object. 9143 // Check whether constructor returns with an object or non-object.
9144 { Local<FunctionTemplate> function_template = 9144 { Local<FunctionTemplate> function_template =
9145 FunctionTemplate::New(FakeConstructorCallback); 9145 FunctionTemplate::New(FakeConstructorCallback);
9146 Local<Function> function = function_template->GetFunction(); 9146 Local<Function> function = function_template->GetFunction();
9147 Local<Object> instance1 = function; 9147 Local<Object> instance1 = function;
9148 context->Global()->Set(v8_str("obj4"), instance1); 9148 context->Global()->Set(v8_str("obj4"), instance1);
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
9458 Local<v8::Object> instance = t->GetFunction()->NewInstance(); 9458 Local<v8::Object> instance = t->GetFunction()->NewInstance();
9459 context->Global()->Set(v8_str("obj2"), instance); 9459 context->Global()->Set(v8_str("obj2"), instance);
9460 v8::TryCatch try_catch; 9460 v8::TryCatch try_catch;
9461 Local<Value> value; 9461 Local<Value> value;
9462 CHECK(!try_catch.HasCaught()); 9462 CHECK(!try_catch.HasCaught());
9463 9463
9464 // Call an object without call-as-function handler through the JS 9464 // Call an object without call-as-function handler through the JS
9465 value = CompileRun("obj2(28)"); 9465 value = CompileRun("obj2(28)");
9466 CHECK(value.IsEmpty()); 9466 CHECK(value.IsEmpty());
9467 CHECK(try_catch.HasCaught()); 9467 CHECK(try_catch.HasCaught());
9468 String::AsciiValue exception_value1(try_catch.Exception()); 9468 String::Utf8Value exception_value1(try_catch.Exception());
9469 CHECK_EQ("TypeError: Property 'obj2' of object #<Object> is not a function", 9469 CHECK_EQ("TypeError: Property 'obj2' of object #<Object> is not a function",
9470 *exception_value1); 9470 *exception_value1);
9471 try_catch.Reset(); 9471 try_catch.Reset();
9472 9472
9473 // Call an object without call-as-function handler through the API 9473 // Call an object without call-as-function handler through the API
9474 value = CompileRun("obj2(28)"); 9474 value = CompileRun("obj2(28)");
9475 v8::Handle<Value> args[] = { v8_num(28) }; 9475 v8::Handle<Value> args[] = { v8_num(28) };
9476 value = instance->CallAsFunction(instance, 1, args); 9476 value = instance->CallAsFunction(instance, 1, args);
9477 CHECK(value.IsEmpty()); 9477 CHECK(value.IsEmpty());
9478 CHECK(try_catch.HasCaught()); 9478 CHECK(try_catch.HasCaught());
9479 String::AsciiValue exception_value2(try_catch.Exception()); 9479 String::Utf8Value exception_value2(try_catch.Exception());
9480 CHECK_EQ("TypeError: [object Object] is not a function", *exception_value2); 9480 CHECK_EQ("TypeError: [object Object] is not a function", *exception_value2);
9481 try_catch.Reset(); 9481 try_catch.Reset();
9482 } 9482 }
9483 9483
9484 { Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(); 9484 { Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New();
9485 Local<ObjectTemplate> instance_template = t->InstanceTemplate(); 9485 Local<ObjectTemplate> instance_template = t->InstanceTemplate();
9486 instance_template->SetCallAsFunctionHandler(ThrowValue); 9486 instance_template->SetCallAsFunctionHandler(ThrowValue);
9487 Local<v8::Object> instance = t->GetFunction()->NewInstance(); 9487 Local<v8::Object> instance = t->GetFunction()->NewInstance();
9488 context->Global()->Set(v8_str("obj3"), instance); 9488 context->Global()->Set(v8_str("obj3"), instance);
9489 v8::TryCatch try_catch; 9489 v8::TryCatch try_catch;
9490 Local<Value> value; 9490 Local<Value> value;
9491 CHECK(!try_catch.HasCaught()); 9491 CHECK(!try_catch.HasCaught());
9492 9492
9493 // Catch the exception which is thrown by call-as-function handler 9493 // Catch the exception which is thrown by call-as-function handler
9494 value = CompileRun("obj3(22)"); 9494 value = CompileRun("obj3(22)");
9495 CHECK(try_catch.HasCaught()); 9495 CHECK(try_catch.HasCaught());
9496 String::AsciiValue exception_value1(try_catch.Exception()); 9496 String::Utf8Value exception_value1(try_catch.Exception());
9497 CHECK_EQ("22", *exception_value1); 9497 CHECK_EQ("22", *exception_value1);
9498 try_catch.Reset(); 9498 try_catch.Reset();
9499 9499
9500 v8::Handle<Value> args[] = { v8_num(23) }; 9500 v8::Handle<Value> args[] = { v8_num(23) };
9501 value = instance->CallAsFunction(instance, 1, args); 9501 value = instance->CallAsFunction(instance, 1, args);
9502 CHECK(try_catch.HasCaught()); 9502 CHECK(try_catch.HasCaught());
9503 String::AsciiValue exception_value2(try_catch.Exception()); 9503 String::Utf8Value exception_value2(try_catch.Exception());
9504 CHECK_EQ("23", *exception_value2); 9504 CHECK_EQ("23", *exception_value2);
9505 try_catch.Reset(); 9505 try_catch.Reset();
9506 } 9506 }
9507 } 9507 }
9508 9508
9509 9509
9510 // Check whether a non-function object is callable. 9510 // Check whether a non-function object is callable.
9511 THREADED_TEST(CallableObject) { 9511 THREADED_TEST(CallableObject) {
9512 LocalContext context; 9512 LocalContext context;
9513 v8::HandleScope scope(context->GetIsolate()); 9513 v8::HandleScope scope(context->GetIsolate());
(...skipping 2929 matching lines...) Expand 10 before | Expand all | Expand 10 after
12443 v8::Handle<v8::Value> result = script->Run(); 12443 v8::Handle<v8::Value> result = script->Run();
12444 CHECK(result.IsEmpty()); 12444 CHECK(result.IsEmpty());
12445 CHECK(try_catch.HasCaught()); 12445 CHECK(try_catch.HasCaught());
12446 v8::Handle<v8::Message> message = try_catch.Message(); 12446 v8::Handle<v8::Message> message = try_catch.Message();
12447 CHECK(!message.IsEmpty()); 12447 CHECK(!message.IsEmpty());
12448 CHECK_EQ(10 + line_offset, message->GetLineNumber()); 12448 CHECK_EQ(10 + line_offset, message->GetLineNumber());
12449 CHECK_EQ(91, message->GetStartPosition()); 12449 CHECK_EQ(91, message->GetStartPosition());
12450 CHECK_EQ(92, message->GetEndPosition()); 12450 CHECK_EQ(92, message->GetEndPosition());
12451 CHECK_EQ(2, message->GetStartColumn()); 12451 CHECK_EQ(2, message->GetStartColumn());
12452 CHECK_EQ(3, message->GetEndColumn()); 12452 CHECK_EQ(3, message->GetEndColumn());
12453 v8::String::AsciiValue line(message->GetSourceLine()); 12453 v8::String::Utf8Value line(message->GetSourceLine());
12454 CHECK_EQ(" throw 'nirk';", *line); 12454 CHECK_EQ(" throw 'nirk';", *line);
12455 v8::String::AsciiValue name(message->GetScriptResourceName()); 12455 v8::String::Utf8Value name(message->GetScriptResourceName());
12456 CHECK_EQ(resource_name, *name); 12456 CHECK_EQ(resource_name, *name);
12457 } 12457 }
12458 12458
12459 12459
12460 THREADED_TEST(TryCatchSourceInfo) { 12460 THREADED_TEST(TryCatchSourceInfo) {
12461 LocalContext context; 12461 LocalContext context;
12462 v8::HandleScope scope(context->GetIsolate()); 12462 v8::HandleScope scope(context->GetIsolate());
12463 v8::Handle<v8::String> source = v8::String::New( 12463 v8::Handle<v8::String> source = v8::String::New(
12464 "function Foo() {\n" 12464 "function Foo() {\n"
12465 " return Bar();\n" 12465 " return Bar();\n"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
12517 12517
12518 12518
12519 THREADED_TEST(CallbackFunctionName) { 12519 THREADED_TEST(CallbackFunctionName) {
12520 LocalContext context; 12520 LocalContext context;
12521 v8::HandleScope scope(context->GetIsolate()); 12521 v8::HandleScope scope(context->GetIsolate());
12522 Local<ObjectTemplate> t = ObjectTemplate::New(); 12522 Local<ObjectTemplate> t = ObjectTemplate::New();
12523 t->Set(v8_str("asdf"), v8::FunctionTemplate::New(FunctionNameCallback)); 12523 t->Set(v8_str("asdf"), v8::FunctionTemplate::New(FunctionNameCallback));
12524 context->Global()->Set(v8_str("obj"), t->NewInstance()); 12524 context->Global()->Set(v8_str("obj"), t->NewInstance());
12525 v8::Handle<v8::Value> value = CompileRun("obj.asdf.name"); 12525 v8::Handle<v8::Value> value = CompileRun("obj.asdf.name");
12526 CHECK(value->IsString()); 12526 CHECK(value->IsString());
12527 v8::String::AsciiValue name(value); 12527 v8::String::Utf8Value name(value);
12528 CHECK_EQ("asdf", *name); 12528 CHECK_EQ("asdf", *name);
12529 } 12529 }
12530 12530
12531 12531
12532 THREADED_TEST(DateAccess) { 12532 THREADED_TEST(DateAccess) {
12533 LocalContext context; 12533 LocalContext context;
12534 v8::HandleScope scope(context->GetIsolate()); 12534 v8::HandleScope scope(context->GetIsolate());
12535 v8::Handle<v8::Value> date = v8::Date::New(1224744689038.0); 12535 v8::Handle<v8::Value> date = v8::Date::New(1224744689038.0);
12536 CHECK(date->IsDate()); 12536 CHECK(date->IsDate());
12537 CHECK_EQ(1224744689038.0, date.As<v8::Date>()->NumberValue()); 12537 CHECK_EQ(1224744689038.0, date.As<v8::Date>()->NumberValue());
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
12989 unsigned* sd_data = 12989 unsigned* sd_data =
12990 reinterpret_cast<unsigned*>(const_cast<char*>(sd->Data())); 12990 reinterpret_cast<unsigned*>(const_cast<char*>(sd->Data()));
12991 12991
12992 // Overwrite function bar's end position with 0. 12992 // Overwrite function bar's end position with 0.
12993 sd_data[kHeaderSize + 1 * kFunctionEntrySize + kFunctionEntryEndOffset] = 0; 12993 sd_data[kHeaderSize + 1 * kFunctionEntrySize + kFunctionEntryEndOffset] = 0;
12994 v8::TryCatch try_catch; 12994 v8::TryCatch try_catch;
12995 12995
12996 Local<String> source = String::New(script); 12996 Local<String> source = String::New(script);
12997 Local<Script> compiled_script = Script::New(source, NULL, sd); 12997 Local<Script> compiled_script = Script::New(source, NULL, sd);
12998 CHECK(try_catch.HasCaught()); 12998 CHECK(try_catch.HasCaught());
12999 String::AsciiValue exception_value(try_catch.Message()->Get()); 12999 String::Utf8Value exception_value(try_catch.Message()->Get());
13000 CHECK_EQ("Uncaught SyntaxError: Invalid preparser data for function bar", 13000 CHECK_EQ("Uncaught SyntaxError: Invalid preparser data for function bar",
13001 *exception_value); 13001 *exception_value);
13002 13002
13003 try_catch.Reset(); 13003 try_catch.Reset();
13004 13004
13005 // Overwrite function bar's start position with 200. The function entry 13005 // Overwrite function bar's start position with 200. The function entry
13006 // will not be found when searching for it by position and we should fall 13006 // will not be found when searching for it by position and we should fall
13007 // back on eager compilation. 13007 // back on eager compilation.
13008 sd = v8::ScriptData::PreCompile(script, i::StrLength(script)); 13008 sd = v8::ScriptData::PreCompile(script, i::StrLength(script));
13009 sd_data = reinterpret_cast<unsigned*>(const_cast<char*>(sd->Data())); 13009 sd_data = reinterpret_cast<unsigned*>(const_cast<char*>(sd->Data()));
(...skipping 3248 matching lines...) Expand 10 before | Expand all | Expand 10 after
16258 v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test")); 16258 v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
16259 v8::Handle<v8::String> script = v8::String::New( 16259 v8::Handle<v8::String> script = v8::String::New(
16260 "function f() {}\n\nfunction g() {}"); 16260 "function f() {}\n\nfunction g() {}");
16261 v8::Script::Compile(script, &origin)->Run(); 16261 v8::Script::Compile(script, &origin)->Run();
16262 v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( 16262 v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
16263 env->Global()->Get(v8::String::New("f"))); 16263 env->Global()->Get(v8::String::New("f")));
16264 v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast( 16264 v8::Local<v8::Function> g = v8::Local<v8::Function>::Cast(
16265 env->Global()->Get(v8::String::New("g"))); 16265 env->Global()->Get(v8::String::New("g")));
16266 16266
16267 v8::ScriptOrigin script_origin_f = f->GetScriptOrigin(); 16267 v8::ScriptOrigin script_origin_f = f->GetScriptOrigin();
16268 CHECK_EQ("test", *v8::String::AsciiValue(script_origin_f.ResourceName())); 16268 CHECK_EQ("test", *v8::String::Utf8Value(script_origin_f.ResourceName()));
16269 CHECK_EQ(0, script_origin_f.ResourceLineOffset()->Int32Value()); 16269 CHECK_EQ(0, script_origin_f.ResourceLineOffset()->Int32Value());
16270 16270
16271 v8::ScriptOrigin script_origin_g = g->GetScriptOrigin(); 16271 v8::ScriptOrigin script_origin_g = g->GetScriptOrigin();
16272 CHECK_EQ("test", *v8::String::AsciiValue(script_origin_g.ResourceName())); 16272 CHECK_EQ("test", *v8::String::Utf8Value(script_origin_g.ResourceName()));
16273 CHECK_EQ(0, script_origin_g.ResourceLineOffset()->Int32Value()); 16273 CHECK_EQ(0, script_origin_g.ResourceLineOffset()->Int32Value());
16274 } 16274 }
16275 16275
16276 THREADED_TEST(FunctionGetInferredName) { 16276 THREADED_TEST(FunctionGetInferredName) {
16277 LocalContext env; 16277 LocalContext env;
16278 v8::HandleScope scope(env->GetIsolate()); 16278 v8::HandleScope scope(env->GetIsolate());
16279 v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test")); 16279 v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
16280 v8::Handle<v8::String> script = v8::String::New( 16280 v8::Handle<v8::String> script = v8::String::New(
16281 "var foo = { bar : { baz : function() {}}}; var f = foo.bar.baz;"); 16281 "var foo = { bar : { baz : function() {}}}; var f = foo.bar.baz;");
16282 v8::Script::Compile(script, &origin)->Run(); 16282 v8::Script::Compile(script, &origin)->Run();
16283 v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( 16283 v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
16284 env->Global()->Get(v8::String::New("f"))); 16284 env->Global()->Get(v8::String::New("f")));
16285 CHECK_EQ("foo.bar.baz", *v8::String::AsciiValue(f->GetInferredName())); 16285 CHECK_EQ("foo.bar.baz", *v8::String::Utf8Value(f->GetInferredName()));
16286 } 16286 }
16287 16287
16288 THREADED_TEST(ScriptLineNumber) { 16288 THREADED_TEST(ScriptLineNumber) {
16289 LocalContext env; 16289 LocalContext env;
16290 v8::HandleScope scope(env->GetIsolate()); 16290 v8::HandleScope scope(env->GetIsolate());
16291 v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test")); 16291 v8::ScriptOrigin origin = v8::ScriptOrigin(v8::String::New("test"));
16292 v8::Handle<v8::String> script = v8::String::New( 16292 v8::Handle<v8::String> script = v8::String::New(
16293 "function f() {}\n\nfunction g() {}"); 16293 "function f() {}\n\nfunction g() {}");
16294 v8::Script::Compile(script, &origin)->Run(); 16294 v8::Script::Compile(script, &origin)->Run();
16295 v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast( 16295 v8::Local<v8::Function> f = v8::Local<v8::Function>::Cast(
(...skipping 2677 matching lines...) Expand 10 before | Expand all | Expand 10 after
18973 i::Semaphore* sem_; 18973 i::Semaphore* sem_;
18974 volatile int sem_value_; 18974 volatile int sem_value_;
18975 }; 18975 };
18976 18976
18977 18977
18978 THREADED_TEST(SemaphoreInterruption) { 18978 THREADED_TEST(SemaphoreInterruption) {
18979 ThreadInterruptTest().RunTest(); 18979 ThreadInterruptTest().RunTest();
18980 } 18980 }
18981 18981
18982 #endif // WIN32 18982 #endif // WIN32
OLDNEW
« no previous file with comments | « src/extensions/statistics-extension.cc ('k') | test/cctest/test-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698