OLD | NEW |
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 6436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6447 " testBool();" | 6447 " testBool();" |
6448 "}\n" | 6448 "}\n" |
6449 "\"PASS\"", | 6449 "\"PASS\"", |
6450 "PASS"); | 6450 "PASS"); |
6451 } | 6451 } |
6452 | 6452 |
6453 | 6453 |
6454 template <typename T> static void USE(T) { } | 6454 template <typename T> static void USE(T) { } |
6455 | 6455 |
6456 | 6456 |
6457 // This test is not intended to be run, just type checked. | 6457 // The point of this test is type checking. We run it only so compilers |
6458 static inline void PersistentHandles(v8::Isolate* isolate) { | 6458 // don't complain about an unused function. |
6459 USE(PersistentHandles); | 6459 TEST(PersistentHandles) { |
| 6460 LocalContext env; |
| 6461 v8::Isolate* isolate = CcTest::isolate(); |
| 6462 v8::HandleScope scope(isolate); |
6460 Local<String> str = v8_str("foo"); | 6463 Local<String> str = v8_str("foo"); |
6461 v8::Persistent<String> p_str(isolate, str); | 6464 v8::Persistent<String> p_str(isolate, str); |
6462 p_str.Reset(); | 6465 p_str.Reset(); |
6463 Local<Script> scr = Script::Compile(v8_str("")); | 6466 Local<Script> scr = Script::Compile(v8_str("")); |
6464 v8::Persistent<Script> p_scr(isolate, scr); | 6467 v8::Persistent<Script> p_scr(isolate, scr); |
6465 p_scr.Reset(); | 6468 p_scr.Reset(); |
6466 Local<ObjectTemplate> templ = ObjectTemplate::New(); | 6469 Local<ObjectTemplate> templ = ObjectTemplate::New(); |
6467 v8::Persistent<ObjectTemplate> p_templ(isolate, templ); | 6470 v8::Persistent<ObjectTemplate> p_templ(isolate, templ); |
6468 p_templ.Reset(); | 6471 p_templ.Reset(); |
6469 } | 6472 } |
(...skipping 11611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
18081 " var r1_ = %_GetFromCache(0, key1);" | 18084 " var r1_ = %_GetFromCache(0, key1);" |
18082 " if (r1 !== r1_)" | 18085 " if (r1 !== r1_)" |
18083 " return 'Different results for ' + key1 + ': ' + r1 + ' vs. ' + r1_;" | 18086 " return 'Different results for ' + key1 + ': ' + r1 + ' vs. ' + r1_;" |
18084 " return 'PASSED';" | 18087 " return 'PASSED';" |
18085 "})()"; | 18088 "})()"; |
18086 CcTest::heap()->ClearJSFunctionResultCaches(); | 18089 CcTest::heap()->ClearJSFunctionResultCaches(); |
18087 ExpectString(code, "PASSED"); | 18090 ExpectString(code, "PASSED"); |
18088 } | 18091 } |
18089 | 18092 |
18090 | 18093 |
18091 static const int k0CacheSize = 16; | |
18092 | |
18093 THREADED_TEST(FillJSFunctionResultCache) { | 18094 THREADED_TEST(FillJSFunctionResultCache) { |
18094 i::FLAG_allow_natives_syntax = true; | 18095 i::FLAG_allow_natives_syntax = true; |
18095 LocalContext context; | 18096 LocalContext context; |
18096 v8::HandleScope scope(context->GetIsolate()); | 18097 v8::HandleScope scope(context->GetIsolate()); |
18097 | 18098 |
18098 const char* code = | 18099 const char* code = |
18099 "(function() {" | 18100 "(function() {" |
18100 " var k = 'a';" | 18101 " var k = 'a';" |
18101 " var r = %_GetFromCache(0, k);" | 18102 " var r = %_GetFromCache(0, k);" |
18102 " for (var i = 0; i < 16; i++) {" | 18103 " for (var i = 0; i < 16; i++) {" |
(...skipping 2769 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
20872 } | 20873 } |
20873 for (int i = 0; i < runs; i++) { | 20874 for (int i = 0; i < runs; i++) { |
20874 Local<String> expected; | 20875 Local<String> expected; |
20875 if (i != 0) { | 20876 if (i != 0) { |
20876 CHECK_EQ(v8_str("escape value"), values[i]); | 20877 CHECK_EQ(v8_str("escape value"), values[i]); |
20877 } else { | 20878 } else { |
20878 CHECK(values[i].IsEmpty()); | 20879 CHECK(values[i].IsEmpty()); |
20879 } | 20880 } |
20880 } | 20881 } |
20881 } | 20882 } |
OLD | NEW |