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

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

Issue 1316933002: [es6] Initial steps towards a correct implementation of IsCallable. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase again. Created 5 years, 3 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
« no previous file with comments | « src/x64/lithium-codegen-x64.cc ('k') | no next file » | 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 9777 matching lines...) Expand 10 before | Expand all | Expand 10 after
9788 value = CompileRun("new obj2(28)"); 9788 value = CompileRun("new obj2(28)");
9789 CHECK(try_catch.HasCaught()); 9789 CHECK(try_catch.HasCaught());
9790 String::Utf8Value exception_value1(try_catch.Exception()); 9790 String::Utf8Value exception_value1(try_catch.Exception());
9791 CHECK_EQ(0, strcmp("TypeError: obj2 is not a function", *exception_value1)); 9791 CHECK_EQ(0, strcmp("TypeError: obj2 is not a function", *exception_value1));
9792 try_catch.Reset(); 9792 try_catch.Reset();
9793 9793
9794 Local<Value> args[] = {v8_num(29)}; 9794 Local<Value> args[] = {v8_num(29)};
9795 value = instance->CallAsConstructor(1, args); 9795 value = instance->CallAsConstructor(1, args);
9796 CHECK(try_catch.HasCaught()); 9796 CHECK(try_catch.HasCaught());
9797 String::Utf8Value exception_value2(try_catch.Exception()); 9797 String::Utf8Value exception_value2(try_catch.Exception());
9798 CHECK_EQ( 9798 CHECK_EQ(0,
9799 0, strcmp("TypeError: #<Object> is not a function", *exception_value2)); 9799 strcmp("TypeError: object is not a function", *exception_value2));
9800 try_catch.Reset(); 9800 try_catch.Reset();
9801 } 9801 }
9802 9802
9803 // Check the case when constructor throws exception. 9803 // Check the case when constructor throws exception.
9804 { 9804 {
9805 Local<ObjectTemplate> instance_template = ObjectTemplate::New(isolate); 9805 Local<ObjectTemplate> instance_template = ObjectTemplate::New(isolate);
9806 instance_template->SetCallAsFunctionHandler(ThrowValue); 9806 instance_template->SetCallAsFunctionHandler(ThrowValue);
9807 Local<Object> instance = instance_template->NewInstance(); 9807 Local<Object> instance = instance_template->NewInstance();
9808 context->Global()->Set(v8_str("obj3"), instance); 9808 context->Global()->Set(v8_str("obj3"), instance);
9809 v8::TryCatch try_catch(isolate); 9809 v8::TryCatch try_catch(isolate);
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
10158 CHECK_EQ(0, strcmp("TypeError: obj2 is not a function", *exception_value1)); 10158 CHECK_EQ(0, strcmp("TypeError: obj2 is not a function", *exception_value1));
10159 try_catch.Reset(); 10159 try_catch.Reset();
10160 10160
10161 // Call an object without call-as-function handler through the API 10161 // Call an object without call-as-function handler through the API
10162 value = CompileRun("obj2(28)"); 10162 value = CompileRun("obj2(28)");
10163 v8::Handle<Value> args[] = {v8_num(28)}; 10163 v8::Handle<Value> args[] = {v8_num(28)};
10164 value = instance->CallAsFunction(instance, 1, args); 10164 value = instance->CallAsFunction(instance, 1, args);
10165 CHECK(value.IsEmpty()); 10165 CHECK(value.IsEmpty());
10166 CHECK(try_catch.HasCaught()); 10166 CHECK(try_catch.HasCaught());
10167 String::Utf8Value exception_value2(try_catch.Exception()); 10167 String::Utf8Value exception_value2(try_catch.Exception());
10168 CHECK_EQ(0, strcmp("TypeError: [object Object] is not a function", 10168 CHECK_EQ(0,
10169 *exception_value2)); 10169 strcmp("TypeError: object is not a function", *exception_value2));
10170 try_catch.Reset(); 10170 try_catch.Reset();
10171 } 10171 }
10172 10172
10173 { 10173 {
10174 Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(isolate); 10174 Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New(isolate);
10175 Local<ObjectTemplate> instance_template = t->InstanceTemplate(); 10175 Local<ObjectTemplate> instance_template = t->InstanceTemplate();
10176 instance_template->SetCallAsFunctionHandler(ThrowValue); 10176 instance_template->SetCallAsFunctionHandler(ThrowValue);
10177 Local<v8::Object> instance = t->GetFunction()->NewInstance(); 10177 Local<v8::Object> instance = t->GetFunction()->NewInstance();
10178 context->Global()->Set(v8_str("obj3"), instance); 10178 context->Global()->Set(v8_str("obj3"), instance);
10179 v8::TryCatch try_catch(isolate); 10179 v8::TryCatch try_catch(isolate);
(...skipping 11672 matching lines...) Expand 10 before | Expand all | Expand 10 after
21852 timeout_thread.Join(); 21852 timeout_thread.Join();
21853 } 21853 }
21854 21854
21855 21855
21856 TEST(EstimatedContextSize) { 21856 TEST(EstimatedContextSize) {
21857 v8::Isolate* isolate = CcTest::isolate(); 21857 v8::Isolate* isolate = CcTest::isolate();
21858 v8::HandleScope scope(isolate); 21858 v8::HandleScope scope(isolate);
21859 LocalContext env; 21859 LocalContext env;
21860 CHECK(50000 < env->EstimatedSize()); 21860 CHECK(50000 < env->EstimatedSize());
21861 } 21861 }
OLDNEW
« no previous file with comments | « src/x64/lithium-codegen-x64.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698