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

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

Issue 11931013: Revert trunk to version 3.16.4. (Closed) Base URL: https://v8.googlecode.com/svn/trunk
Patch Set: Created 7 years, 11 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/x64/macro-assembler-x64.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
11 // with the distribution. 11 // with the distribution.
12 // * Neither the name of Google Inc. nor the names of its 12 // * Neither the name of Google Inc. nor the names of its
13 // contributors may be used to endorse or promote products derived 13 // contributors may be used to endorse or promote products derived
14 // from this software without specific prior written permission. 14 // from this software without specific prior written permission.
15 // 15 //
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 27
28 // We want to test our deprecated API entries, too.
29 #define V8_DISABLE_DEPRECATIONS 1
30
28 #include <limits.h> 31 #include <limits.h>
29 32
30 #ifndef WIN32 33 #ifndef WIN32
31 #include <signal.h> // kill 34 #include <signal.h> // kill
32 #include <unistd.h> // getpid 35 #include <unistd.h> // getpid
33 #endif // WIN32 36 #endif // WIN32
34 37
35 #include "v8.h" 38 #include "v8.h"
36 39
37 #include "api.h" 40 #include "api.h"
(...skipping 839 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 Local<Function> fun = fun_templ->GetFunction(); 880 Local<Function> fun = fun_templ->GetFunction();
878 env->Global()->Set(v8_str("obj"), fun); 881 env->Global()->Set(v8_str("obj"), fun);
879 Local<Script> script = v8_compile("obj.length"); 882 Local<Script> script = v8_compile("obj.length");
880 CHECK_EQ(0, script->Run()->Int32Value()); 883 CHECK_EQ(0, script->Run()->Int32Value());
881 } 884 }
882 } 885 }
883 886
884 887
885 static void* expected_ptr; 888 static void* expected_ptr;
886 static v8::Handle<v8::Value> callback(const v8::Arguments& args) { 889 static v8::Handle<v8::Value> callback(const v8::Arguments& args) {
887 void* ptr = v8::External::Cast(*args.Data())->Value(); 890 void* ptr = v8::External::Unwrap(args.Data());
888 CHECK_EQ(expected_ptr, ptr); 891 CHECK_EQ(expected_ptr, ptr);
889 return v8::True(); 892 return v8::True();
890 } 893 }
891 894
892 895
893 static void TestExternalPointerWrapping() { 896 static void TestExternalPointerWrapping() {
894 v8::HandleScope scope; 897 v8::HandleScope scope;
895 LocalContext env; 898 LocalContext env;
896 899
897 v8::Handle<v8::Value> data = v8::External::New(expected_ptr); 900 v8::Handle<v8::Value> data = v8::External::Wrap(expected_ptr);
898 901
899 v8::Handle<v8::Object> obj = v8::Object::New(); 902 v8::Handle<v8::Object> obj = v8::Object::New();
900 obj->Set(v8_str("func"), 903 obj->Set(v8_str("func"),
901 v8::FunctionTemplate::New(callback, data)->GetFunction()); 904 v8::FunctionTemplate::New(callback, data)->GetFunction());
902 env->Global()->Set(v8_str("obj"), obj); 905 env->Global()->Set(v8_str("obj"), obj);
903 906
904 CHECK(CompileRun( 907 CHECK(CompileRun(
905 "function foo() {\n" 908 "function foo() {\n"
906 " for (var i = 0; i < 13; i++) obj.func();\n" 909 " for (var i = 0; i < 13; i++) obj.func();\n"
907 "}\n" 910 "}\n"
(...skipping 1107 matching lines...) Expand 10 before | Expand all | Expand 10 after
2015 LocalContext env(NULL, global_template); 2018 LocalContext env(NULL, global_template);
2016 v8::Handle<v8::Object> global_proxy = env->Global(); 2019 v8::Handle<v8::Object> global_proxy = env->Global();
2017 v8::Handle<v8::Object> global = global_proxy->GetPrototype().As<v8::Object>(); 2020 v8::Handle<v8::Object> global = global_proxy->GetPrototype().As<v8::Object>();
2018 CHECK_EQ(1, global->InternalFieldCount()); 2021 CHECK_EQ(1, global->InternalFieldCount());
2019 CHECK(global->GetInternalField(0)->IsUndefined()); 2022 CHECK(global->GetInternalField(0)->IsUndefined());
2020 global->SetInternalField(0, v8_num(17)); 2023 global->SetInternalField(0, v8_num(17));
2021 CHECK_EQ(17, global->GetInternalField(0)->Int32Value()); 2024 CHECK_EQ(17, global->GetInternalField(0)->Int32Value());
2022 } 2025 }
2023 2026
2024 2027
2028 THREADED_TEST(InternalFieldsNativePointers) {
2029 v8::HandleScope scope;
2030 LocalContext env;
2031
2032 Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
2033 Local<v8::ObjectTemplate> instance_templ = templ->InstanceTemplate();
2034 instance_templ->SetInternalFieldCount(1);
2035 Local<v8::Object> obj = templ->GetFunction()->NewInstance();
2036 CHECK_EQ(1, obj->InternalFieldCount());
2037 CHECK(obj->GetPointerFromInternalField(0) == NULL);
2038
2039 char* data = new char[100];
2040
2041 void* aligned = data;
2042 CHECK_EQ(0, static_cast<int>(reinterpret_cast<uintptr_t>(aligned) & 0x1));
2043 void* unaligned = data + 1;
2044 CHECK_EQ(1, static_cast<int>(reinterpret_cast<uintptr_t>(unaligned) & 0x1));
2045
2046 // Check reading and writing aligned pointers.
2047 obj->SetPointerInInternalField(0, aligned);
2048 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
2049 CHECK_EQ(aligned, obj->GetPointerFromInternalField(0));
2050
2051 // Check reading and writing unaligned pointers.
2052 obj->SetPointerInInternalField(0, unaligned);
2053 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
2054 CHECK_EQ(unaligned, obj->GetPointerFromInternalField(0));
2055
2056 delete[] data;
2057 }
2058
2059
2060 THREADED_TEST(InternalFieldsNativePointersAndExternal) {
2061 v8::HandleScope scope;
2062 LocalContext env;
2063
2064 Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
2065 Local<v8::ObjectTemplate> instance_templ = templ->InstanceTemplate();
2066 instance_templ->SetInternalFieldCount(1);
2067 Local<v8::Object> obj = templ->GetFunction()->NewInstance();
2068 CHECK_EQ(1, obj->InternalFieldCount());
2069 CHECK(obj->GetPointerFromInternalField(0) == NULL);
2070
2071 char* data = new char[100];
2072
2073 void* aligned = data;
2074 CHECK_EQ(0, static_cast<int>(reinterpret_cast<uintptr_t>(aligned) & 0x1));
2075 void* unaligned = data + 1;
2076 CHECK_EQ(1, static_cast<int>(reinterpret_cast<uintptr_t>(unaligned) & 0x1));
2077
2078 obj->SetPointerInInternalField(0, aligned);
2079 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
2080 CHECK_EQ(aligned, v8::External::Unwrap(obj->GetInternalField(0)));
2081
2082 obj->SetPointerInInternalField(0, unaligned);
2083 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
2084 CHECK_EQ(unaligned, v8::External::Unwrap(obj->GetInternalField(0)));
2085
2086 obj->SetInternalField(0, v8::External::Wrap(aligned));
2087 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
2088 CHECK_EQ(aligned, obj->GetPointerFromInternalField(0));
2089
2090 obj->SetInternalField(0, v8::External::Wrap(unaligned));
2091 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
2092 CHECK_EQ(unaligned, obj->GetPointerFromInternalField(0));
2093
2094 delete[] data;
2095 }
2096
2097
2025 static void CheckAlignedPointerInInternalField(Handle<v8::Object> obj, 2098 static void CheckAlignedPointerInInternalField(Handle<v8::Object> obj,
2026 void* value) { 2099 void* value) {
2027 CHECK_EQ(0, static_cast<int>(reinterpret_cast<uintptr_t>(value) & 0x1)); 2100 CHECK_EQ(0, static_cast<int>(reinterpret_cast<uintptr_t>(value) & 0x1));
2028 obj->SetAlignedPointerInInternalField(0, value); 2101 obj->SetPointerInInternalField(0, value);
2029 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags); 2102 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
2030 CHECK_EQ(value, obj->GetAlignedPointerFromInternalField(0)); 2103 CHECK_EQ(value, obj->GetPointerFromInternalField(0));
2031 } 2104 }
2032 2105
2033 2106
2034 THREADED_TEST(InternalFieldsAlignedPointers) { 2107 THREADED_TEST(InternalFieldsAlignedPointers) {
2035 v8::HandleScope scope; 2108 v8::HandleScope scope;
2036 LocalContext env; 2109 LocalContext env;
2037 2110
2038 Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New(); 2111 Local<v8::FunctionTemplate> templ = v8::FunctionTemplate::New();
2039 Local<v8::ObjectTemplate> instance_templ = templ->InstanceTemplate(); 2112 Local<v8::ObjectTemplate> instance_templ = templ->InstanceTemplate();
2040 instance_templ->SetInternalFieldCount(1); 2113 instance_templ->SetInternalFieldCount(1);
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
2275 env->Global()->Set(v8_str("ext"), ext); 2348 env->Global()->Set(v8_str("ext"), ext);
2276 Local<Value> reext_obj = Script::Compile(v8_str("this.ext"))->Run(); 2349 Local<Value> reext_obj = Script::Compile(v8_str("this.ext"))->Run();
2277 v8::Handle<v8::External> reext = reext_obj.As<v8::External>(); 2350 v8::Handle<v8::External> reext = reext_obj.As<v8::External>();
2278 int* ptr = static_cast<int*>(reext->Value()); 2351 int* ptr = static_cast<int*>(reext->Value());
2279 CHECK_EQ(x, 3); 2352 CHECK_EQ(x, 3);
2280 *ptr = 10; 2353 *ptr = 10;
2281 CHECK_EQ(x, 10); 2354 CHECK_EQ(x, 10);
2282 2355
2283 // Make sure unaligned pointers are wrapped properly. 2356 // Make sure unaligned pointers are wrapped properly.
2284 char* data = i::StrDup("0123456789"); 2357 char* data = i::StrDup("0123456789");
2285 Local<v8::Value> zero = v8::External::New(&data[0]); 2358 Local<v8::Value> zero = v8::External::Wrap(&data[0]);
2286 Local<v8::Value> one = v8::External::New(&data[1]); 2359 Local<v8::Value> one = v8::External::Wrap(&data[1]);
2287 Local<v8::Value> two = v8::External::New(&data[2]); 2360 Local<v8::Value> two = v8::External::Wrap(&data[2]);
2288 Local<v8::Value> three = v8::External::New(&data[3]); 2361 Local<v8::Value> three = v8::External::Wrap(&data[3]);
2289 2362
2290 char* char_ptr = reinterpret_cast<char*>(v8::External::Cast(*zero)->Value()); 2363 char* char_ptr = reinterpret_cast<char*>(v8::External::Unwrap(zero));
2291 CHECK_EQ('0', *char_ptr); 2364 CHECK_EQ('0', *char_ptr);
2292 char_ptr = reinterpret_cast<char*>(v8::External::Cast(*one)->Value()); 2365 char_ptr = reinterpret_cast<char*>(v8::External::Unwrap(one));
2293 CHECK_EQ('1', *char_ptr); 2366 CHECK_EQ('1', *char_ptr);
2294 char_ptr = reinterpret_cast<char*>(v8::External::Cast(*two)->Value()); 2367 char_ptr = reinterpret_cast<char*>(v8::External::Unwrap(two));
2295 CHECK_EQ('2', *char_ptr); 2368 CHECK_EQ('2', *char_ptr);
2296 char_ptr = reinterpret_cast<char*>(v8::External::Cast(*three)->Value()); 2369 char_ptr = reinterpret_cast<char*>(v8::External::Unwrap(three));
2297 CHECK_EQ('3', *char_ptr); 2370 CHECK_EQ('3', *char_ptr);
2298 i::DeleteArray(data); 2371 i::DeleteArray(data);
2299 } 2372 }
2300 2373
2301 2374
2302 THREADED_TEST(GlobalHandle) { 2375 THREADED_TEST(GlobalHandle) {
2303 v8::Persistent<String> global; 2376 v8::Persistent<String> global;
2304 { 2377 {
2305 v8::HandleScope scope; 2378 v8::HandleScope scope;
2306 Local<String> str = v8_str("str"); 2379 Local<String> str = v8_str("str");
(...skipping 3906 matching lines...) Expand 10 before | Expand all | Expand 10 after
6213 int len) { 6286 int len) {
6214 Local<v8::Array> a = 6287 Local<v8::Array> a =
6215 Local<v8::Array>::Cast(context->Global()->Get(v8_str(name))); 6288 Local<v8::Array>::Cast(context->Global()->Get(v8_str(name)));
6216 Local<v8::Array> alens = 6289 Local<v8::Array> alens =
6217 Local<v8::Array>::Cast(context->Global()->Get(v8_str(lengths_name))); 6290 Local<v8::Array>::Cast(context->Global()->Get(v8_str(lengths_name)));
6218 for (int i = 0; i < len; i++) { 6291 for (int i = 0; i < len; i++) {
6219 Local<v8::String> string = 6292 Local<v8::String> string =
6220 Local<v8::String>::Cast(a->Get(i)); 6293 Local<v8::String>::Cast(a->Get(i));
6221 Local<v8::Number> expected_len = 6294 Local<v8::Number> expected_len =
6222 Local<v8::Number>::Cast(alens->Get(i)); 6295 Local<v8::Number>::Cast(alens->Get(i));
6223 #ifndef ENABLE_LATIN_1
6224 CHECK_EQ(expected_len->Value() != string->Length(), 6296 CHECK_EQ(expected_len->Value() != string->Length(),
6225 string->MayContainNonAscii()); 6297 string->MayContainNonAscii());
6226 #endif
6227 int length = GetUtf8Length(string); 6298 int length = GetUtf8Length(string);
6228 CHECK_EQ(static_cast<int>(expected_len->Value()), length); 6299 CHECK_EQ(static_cast<int>(expected_len->Value()), length);
6229 } 6300 }
6230 } 6301 }
6231 6302
6232 6303
6233 static uint16_t StringGet(Handle<String> str, int index) { 6304 static uint16_t StringGet(Handle<String> str, int index) {
6234 i::Handle<i::String> istring = 6305 i::Handle<i::String> istring =
6235 v8::Utils::OpenHandle(String::Cast(*str)); 6306 v8::Utils::OpenHandle(String::Cast(*str));
6236 return istring->Get(index); 6307 return istring->Get(index);
(...skipping 3589 matching lines...) Expand 10 before | Expand all | Expand 10 after
9826 " result" 9897 " result"
9827 "} catch(e) {" 9898 "} catch(e) {"
9828 " e" 9899 " e"
9829 "};"); 9900 "};");
9830 CHECK_EQ(239 * 10, value->Int32Value()); 9901 CHECK_EQ(239 * 10, value->Int32Value());
9831 } 9902 }
9832 9903
9833 static v8::Handle<Value> InterceptorCallICFastApi(Local<String> name, 9904 static v8::Handle<Value> InterceptorCallICFastApi(Local<String> name,
9834 const AccessorInfo& info) { 9905 const AccessorInfo& info) {
9835 ApiTestFuzzer::Fuzz(); 9906 ApiTestFuzzer::Fuzz();
9836 int* call_count = 9907 int* call_count = reinterpret_cast<int*>(v8::External::Unwrap(info.Data()));
9837 reinterpret_cast<int*>(v8::External::Cast(*info.Data())->Value());
9838 ++(*call_count); 9908 ++(*call_count);
9839 if ((*call_count) % 20 == 0) { 9909 if ((*call_count) % 20 == 0) {
9840 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags); 9910 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
9841 } 9911 }
9842 return v8::Handle<Value>(); 9912 return v8::Handle<Value>();
9843 } 9913 }
9844 9914
9845 static v8::Handle<Value> FastApiCallback_TrivialSignature( 9915 static v8::Handle<Value> FastApiCallback_TrivialSignature(
9846 const v8::Arguments& args) { 9916 const v8::Arguments& args) {
9847 ApiTestFuzzer::Fuzz(); 9917 ApiTestFuzzer::Fuzz();
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
9986 v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New(); 10056 v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
9987 v8::Handle<v8::FunctionTemplate> method_templ = 10057 v8::Handle<v8::FunctionTemplate> method_templ =
9988 v8::FunctionTemplate::New(FastApiCallback_TrivialSignature, 10058 v8::FunctionTemplate::New(FastApiCallback_TrivialSignature,
9989 v8_str("method_data"), 10059 v8_str("method_data"),
9990 v8::Handle<v8::Signature>()); 10060 v8::Handle<v8::Signature>());
9991 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate(); 10061 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate();
9992 proto_templ->Set(v8_str("method"), method_templ); 10062 proto_templ->Set(v8_str("method"), method_templ);
9993 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate(); 10063 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate();
9994 templ->SetNamedPropertyHandler(InterceptorCallICFastApi, 10064 templ->SetNamedPropertyHandler(InterceptorCallICFastApi,
9995 NULL, NULL, NULL, NULL, 10065 NULL, NULL, NULL, NULL,
9996 v8::External::New(&interceptor_call_count)); 10066 v8::External::Wrap(&interceptor_call_count));
9997 LocalContext context; 10067 LocalContext context;
9998 v8::Handle<v8::Function> fun = fun_templ->GetFunction(); 10068 v8::Handle<v8::Function> fun = fun_templ->GetFunction();
9999 GenerateSomeGarbage(); 10069 GenerateSomeGarbage();
10000 context->Global()->Set(v8_str("o"), fun->NewInstance()); 10070 context->Global()->Set(v8_str("o"), fun->NewInstance());
10001 CompileRun( 10071 CompileRun(
10002 "var result = 0;" 10072 "var result = 0;"
10003 "for (var i = 0; i < 100; i++) {" 10073 "for (var i = 0; i < 100; i++) {"
10004 " result = o.method(41);" 10074 " result = o.method(41);"
10005 "}"); 10075 "}");
10006 CHECK_EQ(42, context->Global()->Get(v8_str("result"))->Int32Value()); 10076 CHECK_EQ(42, context->Global()->Get(v8_str("result"))->Int32Value());
10007 CHECK_EQ(100, interceptor_call_count); 10077 CHECK_EQ(100, interceptor_call_count);
10008 } 10078 }
10009 10079
10010 THREADED_TEST(InterceptorCallICFastApi_SimpleSignature) { 10080 THREADED_TEST(InterceptorCallICFastApi_SimpleSignature) {
10011 int interceptor_call_count = 0; 10081 int interceptor_call_count = 0;
10012 v8::HandleScope scope; 10082 v8::HandleScope scope;
10013 v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New(); 10083 v8::Handle<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
10014 v8::Handle<v8::FunctionTemplate> method_templ = 10084 v8::Handle<v8::FunctionTemplate> method_templ =
10015 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature, 10085 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
10016 v8_str("method_data"), 10086 v8_str("method_data"),
10017 v8::Signature::New(fun_templ)); 10087 v8::Signature::New(fun_templ));
10018 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate(); 10088 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate();
10019 proto_templ->Set(v8_str("method"), method_templ); 10089 proto_templ->Set(v8_str("method"), method_templ);
10020 fun_templ->SetHiddenPrototype(true); 10090 fun_templ->SetHiddenPrototype(true);
10021 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate(); 10091 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate();
10022 templ->SetNamedPropertyHandler(InterceptorCallICFastApi, 10092 templ->SetNamedPropertyHandler(InterceptorCallICFastApi,
10023 NULL, NULL, NULL, NULL, 10093 NULL, NULL, NULL, NULL,
10024 v8::External::New(&interceptor_call_count)); 10094 v8::External::Wrap(&interceptor_call_count));
10025 LocalContext context; 10095 LocalContext context;
10026 v8::Handle<v8::Function> fun = fun_templ->GetFunction(); 10096 v8::Handle<v8::Function> fun = fun_templ->GetFunction();
10027 GenerateSomeGarbage(); 10097 GenerateSomeGarbage();
10028 context->Global()->Set(v8_str("o"), fun->NewInstance()); 10098 context->Global()->Set(v8_str("o"), fun->NewInstance());
10029 CompileRun( 10099 CompileRun(
10030 "o.foo = 17;" 10100 "o.foo = 17;"
10031 "var receiver = {};" 10101 "var receiver = {};"
10032 "receiver.__proto__ = o;" 10102 "receiver.__proto__ = o;"
10033 "var result = 0;" 10103 "var result = 0;"
10034 "for (var i = 0; i < 100; i++) {" 10104 "for (var i = 0; i < 100; i++) {"
(...skipping 10 matching lines...) Expand all
10045 v8::Handle<v8::FunctionTemplate> method_templ = 10115 v8::Handle<v8::FunctionTemplate> method_templ =
10046 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature, 10116 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
10047 v8_str("method_data"), 10117 v8_str("method_data"),
10048 v8::Signature::New(fun_templ)); 10118 v8::Signature::New(fun_templ));
10049 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate(); 10119 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate();
10050 proto_templ->Set(v8_str("method"), method_templ); 10120 proto_templ->Set(v8_str("method"), method_templ);
10051 fun_templ->SetHiddenPrototype(true); 10121 fun_templ->SetHiddenPrototype(true);
10052 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate(); 10122 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate();
10053 templ->SetNamedPropertyHandler(InterceptorCallICFastApi, 10123 templ->SetNamedPropertyHandler(InterceptorCallICFastApi,
10054 NULL, NULL, NULL, NULL, 10124 NULL, NULL, NULL, NULL,
10055 v8::External::New(&interceptor_call_count)); 10125 v8::External::Wrap(&interceptor_call_count));
10056 LocalContext context; 10126 LocalContext context;
10057 v8::Handle<v8::Function> fun = fun_templ->GetFunction(); 10127 v8::Handle<v8::Function> fun = fun_templ->GetFunction();
10058 GenerateSomeGarbage(); 10128 GenerateSomeGarbage();
10059 context->Global()->Set(v8_str("o"), fun->NewInstance()); 10129 context->Global()->Set(v8_str("o"), fun->NewInstance());
10060 CompileRun( 10130 CompileRun(
10061 "o.foo = 17;" 10131 "o.foo = 17;"
10062 "var receiver = {};" 10132 "var receiver = {};"
10063 "receiver.__proto__ = o;" 10133 "receiver.__proto__ = o;"
10064 "var result = 0;" 10134 "var result = 0;"
10065 "var saved_result = 0;" 10135 "var saved_result = 0;"
(...skipping 16 matching lines...) Expand all
10082 v8::Handle<v8::FunctionTemplate> method_templ = 10152 v8::Handle<v8::FunctionTemplate> method_templ =
10083 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature, 10153 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
10084 v8_str("method_data"), 10154 v8_str("method_data"),
10085 v8::Signature::New(fun_templ)); 10155 v8::Signature::New(fun_templ));
10086 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate(); 10156 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate();
10087 proto_templ->Set(v8_str("method"), method_templ); 10157 proto_templ->Set(v8_str("method"), method_templ);
10088 fun_templ->SetHiddenPrototype(true); 10158 fun_templ->SetHiddenPrototype(true);
10089 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate(); 10159 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate();
10090 templ->SetNamedPropertyHandler(InterceptorCallICFastApi, 10160 templ->SetNamedPropertyHandler(InterceptorCallICFastApi,
10091 NULL, NULL, NULL, NULL, 10161 NULL, NULL, NULL, NULL,
10092 v8::External::New(&interceptor_call_count)); 10162 v8::External::Wrap(&interceptor_call_count));
10093 LocalContext context; 10163 LocalContext context;
10094 v8::Handle<v8::Function> fun = fun_templ->GetFunction(); 10164 v8::Handle<v8::Function> fun = fun_templ->GetFunction();
10095 GenerateSomeGarbage(); 10165 GenerateSomeGarbage();
10096 context->Global()->Set(v8_str("o"), fun->NewInstance()); 10166 context->Global()->Set(v8_str("o"), fun->NewInstance());
10097 CompileRun( 10167 CompileRun(
10098 "o.foo = 17;" 10168 "o.foo = 17;"
10099 "var receiver = {};" 10169 "var receiver = {};"
10100 "receiver.__proto__ = o;" 10170 "receiver.__proto__ = o;"
10101 "var result = 0;" 10171 "var result = 0;"
10102 "var saved_result = 0;" 10172 "var saved_result = 0;"
(...skipping 16 matching lines...) Expand all
10119 v8::Handle<v8::FunctionTemplate> method_templ = 10189 v8::Handle<v8::FunctionTemplate> method_templ =
10120 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature, 10190 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
10121 v8_str("method_data"), 10191 v8_str("method_data"),
10122 v8::Signature::New(fun_templ)); 10192 v8::Signature::New(fun_templ));
10123 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate(); 10193 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate();
10124 proto_templ->Set(v8_str("method"), method_templ); 10194 proto_templ->Set(v8_str("method"), method_templ);
10125 fun_templ->SetHiddenPrototype(true); 10195 fun_templ->SetHiddenPrototype(true);
10126 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate(); 10196 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate();
10127 templ->SetNamedPropertyHandler(InterceptorCallICFastApi, 10197 templ->SetNamedPropertyHandler(InterceptorCallICFastApi,
10128 NULL, NULL, NULL, NULL, 10198 NULL, NULL, NULL, NULL,
10129 v8::External::New(&interceptor_call_count)); 10199 v8::External::Wrap(&interceptor_call_count));
10130 LocalContext context; 10200 LocalContext context;
10131 v8::Handle<v8::Function> fun = fun_templ->GetFunction(); 10201 v8::Handle<v8::Function> fun = fun_templ->GetFunction();
10132 GenerateSomeGarbage(); 10202 GenerateSomeGarbage();
10133 context->Global()->Set(v8_str("o"), fun->NewInstance()); 10203 context->Global()->Set(v8_str("o"), fun->NewInstance());
10134 v8::TryCatch try_catch; 10204 v8::TryCatch try_catch;
10135 CompileRun( 10205 CompileRun(
10136 "o.foo = 17;" 10206 "o.foo = 17;"
10137 "var receiver = {};" 10207 "var receiver = {};"
10138 "receiver.__proto__ = o;" 10208 "receiver.__proto__ = o;"
10139 "var result = 0;" 10209 "var result = 0;"
(...skipping 19 matching lines...) Expand all
10159 v8::Handle<v8::FunctionTemplate> method_templ = 10229 v8::Handle<v8::FunctionTemplate> method_templ =
10160 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature, 10230 v8::FunctionTemplate::New(FastApiCallback_SimpleSignature,
10161 v8_str("method_data"), 10231 v8_str("method_data"),
10162 v8::Signature::New(fun_templ)); 10232 v8::Signature::New(fun_templ));
10163 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate(); 10233 v8::Handle<v8::ObjectTemplate> proto_templ = fun_templ->PrototypeTemplate();
10164 proto_templ->Set(v8_str("method"), method_templ); 10234 proto_templ->Set(v8_str("method"), method_templ);
10165 fun_templ->SetHiddenPrototype(true); 10235 fun_templ->SetHiddenPrototype(true);
10166 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate(); 10236 v8::Handle<v8::ObjectTemplate> templ = fun_templ->InstanceTemplate();
10167 templ->SetNamedPropertyHandler(InterceptorCallICFastApi, 10237 templ->SetNamedPropertyHandler(InterceptorCallICFastApi,
10168 NULL, NULL, NULL, NULL, 10238 NULL, NULL, NULL, NULL,
10169 v8::External::New(&interceptor_call_count)); 10239 v8::External::Wrap(&interceptor_call_count));
10170 LocalContext context; 10240 LocalContext context;
10171 v8::Handle<v8::Function> fun = fun_templ->GetFunction(); 10241 v8::Handle<v8::Function> fun = fun_templ->GetFunction();
10172 GenerateSomeGarbage(); 10242 GenerateSomeGarbage();
10173 context->Global()->Set(v8_str("o"), fun->NewInstance()); 10243 context->Global()->Set(v8_str("o"), fun->NewInstance());
10174 v8::TryCatch try_catch; 10244 v8::TryCatch try_catch;
10175 CompileRun( 10245 CompileRun(
10176 "o.foo = 17;" 10246 "o.foo = 17;"
10177 "var receiver = {};" 10247 "var receiver = {};"
10178 "receiver.__proto__ = o;" 10248 "receiver.__proto__ = o;"
10179 "var result = 0;" 10249 "var result = 0;"
(...skipping 2616 matching lines...) Expand 10 before | Expand all | Expand 10 after
12796 FACTORY->NewExternalStringFromAscii(&ascii_resource))); 12866 FACTORY->NewExternalStringFromAscii(&ascii_resource)));
12797 12867
12798 env->Global()->Set(v8_str("lhs"), lhs); 12868 env->Global()->Set(v8_str("lhs"), lhs);
12799 env->Global()->Set(v8_str("rhs"), rhs); 12869 env->Global()->Set(v8_str("rhs"), rhs);
12800 12870
12801 CompileRun( 12871 CompileRun(
12802 "var cons = lhs + rhs;" 12872 "var cons = lhs + rhs;"
12803 "var slice = lhs.substring(1, lhs.length - 1);" 12873 "var slice = lhs.substring(1, lhs.length - 1);"
12804 "var slice_on_cons = (lhs + rhs).substring(1, lhs.length *2 - 1);"); 12874 "var slice_on_cons = (lhs + rhs).substring(1, lhs.length *2 - 1);");
12805 12875
12806 #ifndef ENABLE_LATIN_1
12807 CHECK(!lhs->MayContainNonAscii()); 12876 CHECK(!lhs->MayContainNonAscii());
12808 CHECK(!rhs->MayContainNonAscii()); 12877 CHECK(!rhs->MayContainNonAscii());
12809 #endif
12810 12878
12811 MorphAString(*v8::Utils::OpenHandle(*lhs), &ascii_resource, &uc16_resource); 12879 MorphAString(*v8::Utils::OpenHandle(*lhs), &ascii_resource, &uc16_resource);
12812 MorphAString(*v8::Utils::OpenHandle(*rhs), &ascii_resource, &uc16_resource); 12880 MorphAString(*v8::Utils::OpenHandle(*rhs), &ascii_resource, &uc16_resource);
12813 12881
12814 // This should UTF-8 without flattening, since everything is ASCII. 12882 // This should UTF-8 without flattening, since everything is ASCII.
12815 Handle<String> cons = v8_compile("cons")->Run().As<String>(); 12883 Handle<String> cons = v8_compile("cons")->Run().As<String>();
12816 CHECK_EQ(128, cons->Utf8Length()); 12884 CHECK_EQ(128, cons->Utf8Length());
12817 int nchars = -1; 12885 int nchars = -1;
12818 CHECK_EQ(129, cons->WriteUtf8(utf_buffer, -1, &nchars)); 12886 CHECK_EQ(129, cons->WriteUtf8(utf_buffer, -1, &nchars));
12819 CHECK_EQ(128, nchars); 12887 CHECK_EQ(128, nchars);
(...skipping 2577 matching lines...) Expand 10 before | Expand all | Expand 10 after
15397 15465
15398 // Context-dependent context data creates reference from the compilation 15466 // Context-dependent context data creates reference from the compilation
15399 // cache to the global object. 15467 // cache to the global object.
15400 const char* source_simple = "1"; 15468 const char* source_simple = "1";
15401 context = Context::New(); 15469 context = Context::New();
15402 { 15470 {
15403 v8::HandleScope scope; 15471 v8::HandleScope scope;
15404 15472
15405 context->Enter(); 15473 context->Enter();
15406 Local<v8::String> obj = v8::String::New(""); 15474 Local<v8::String> obj = v8::String::New("");
15407 context->SetEmbedderData(0, obj); 15475 context->SetData(obj);
15408 CompileRun(source_simple); 15476 CompileRun(source_simple);
15409 context->Exit(); 15477 context->Exit();
15410 } 15478 }
15411 context.Dispose(); 15479 context.Dispose();
15412 v8::V8::ContextDisposedNotification(); 15480 v8::V8::ContextDisposedNotification();
15413 for (gc_count = 1; gc_count < 10; gc_count++) { 15481 for (gc_count = 1; gc_count < 10; gc_count++) {
15414 other_context->Enter(); 15482 other_context->Enter();
15415 CompileRun(source_simple); 15483 CompileRun(source_simple);
15416 other_context->Exit(); 15484 other_context->Exit();
15417 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags); 15485 HEAP->CollectAllGarbage(i::Heap::kNoGCFlags);
(...skipping 2703 matching lines...) Expand 10 before | Expand all | Expand 10 after
18121 18189
18122 i::Semaphore* sem_; 18190 i::Semaphore* sem_;
18123 volatile int sem_value_; 18191 volatile int sem_value_;
18124 }; 18192 };
18125 18193
18126 18194
18127 THREADED_TEST(SemaphoreInterruption) { 18195 THREADED_TEST(SemaphoreInterruption) {
18128 ThreadInterruptTest().RunTest(); 18196 ThreadInterruptTest().RunTest();
18129 } 18197 }
18130 #endif // WIN32 18198 #endif // WIN32
OLDNEW
« no previous file with comments | « src/x64/macro-assembler-x64.cc ('k') | test/cctest/test-debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698