| OLD | NEW |
| 1 // Copyright 2007-2010 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2010 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 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate); | 287 Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate); |
| 288 v8_isolate->Enter(); | 288 v8_isolate->Enter(); |
| 289 { | 289 { |
| 290 Heap* heap = isolate->heap(); | 290 Heap* heap = isolate->heap(); |
| 291 | 291 |
| 292 v8::Persistent<v8::Context> env; | 292 v8::Persistent<v8::Context> env; |
| 293 { | 293 { |
| 294 HandleScope scope(isolate); | 294 HandleScope scope(isolate); |
| 295 env.Reset(v8_isolate, v8::Context::New(v8_isolate)); | 295 env.Reset(v8_isolate, v8::Context::New(v8_isolate)); |
| 296 } | 296 } |
| 297 DCHECK(!env.IsEmpty()); | 297 CHECK(!env.IsEmpty()); |
| 298 { | 298 { |
| 299 v8::HandleScope handle_scope(v8_isolate); | 299 v8::HandleScope handle_scope(v8_isolate); |
| 300 v8::Local<v8::Context>::New(v8_isolate, env)->Enter(); | 300 v8::Local<v8::Context>::New(v8_isolate, env)->Enter(); |
| 301 } | 301 } |
| 302 // Make sure all builtin scripts are cached. | 302 // Make sure all builtin scripts are cached. |
| 303 { | 303 { |
| 304 HandleScope scope(isolate); | 304 HandleScope scope(isolate); |
| 305 for (int i = 0; i < Natives::GetBuiltinsCount(); i++) { | 305 for (int i = 0; i < Natives::GetBuiltinsCount(); i++) { |
| 306 isolate->bootstrapper()->SourceLookup<Natives>(i); | 306 isolate->bootstrapper()->SourceLookup<Natives>(i); |
| 307 } | 307 } |
| 308 } | 308 } |
| 309 heap->CollectAllGarbage(); | 309 heap->CollectAllGarbage(); |
| 310 heap->CollectAllGarbage(); | 310 heap->CollectAllGarbage(); |
| 311 | 311 |
| 312 Object* raw_foo; | 312 Object* raw_foo; |
| 313 { | 313 { |
| 314 v8::HandleScope handle_scope(v8_isolate); | 314 v8::HandleScope handle_scope(v8_isolate); |
| 315 v8::Local<v8::String> foo = v8_str("foo"); | 315 v8::Local<v8::String> foo = v8_str("foo"); |
| 316 DCHECK(!foo.IsEmpty()); | 316 CHECK(!foo.IsEmpty()); |
| 317 raw_foo = *(v8::Utils::OpenHandle(*foo)); | 317 raw_foo = *(v8::Utils::OpenHandle(*foo)); |
| 318 } | 318 } |
| 319 | 319 |
| 320 int file_name_length = StrLength(FLAG_testing_serialization_file) + 10; | 320 int file_name_length = StrLength(FLAG_testing_serialization_file) + 10; |
| 321 Vector<char> startup_name = Vector<char>::New(file_name_length + 1); | 321 Vector<char> startup_name = Vector<char>::New(file_name_length + 1); |
| 322 SNPrintF(startup_name, "%s.startup", FLAG_testing_serialization_file); | 322 SNPrintF(startup_name, "%s.startup", FLAG_testing_serialization_file); |
| 323 | 323 |
| 324 { | 324 { |
| 325 v8::HandleScope handle_scope(v8_isolate); | 325 v8::HandleScope handle_scope(v8_isolate); |
| 326 v8::Local<v8::Context>::New(v8_isolate, env)->Exit(); | 326 v8::Local<v8::Context>::New(v8_isolate, env)->Exit(); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 406 Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate); | 406 Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate); |
| 407 Heap* heap = isolate->heap(); | 407 Heap* heap = isolate->heap(); |
| 408 { | 408 { |
| 409 v8::Isolate::Scope isolate_scope(v8_isolate); | 409 v8::Isolate::Scope isolate_scope(v8_isolate); |
| 410 | 410 |
| 411 v8::Persistent<v8::Context> env; | 411 v8::Persistent<v8::Context> env; |
| 412 { | 412 { |
| 413 HandleScope scope(isolate); | 413 HandleScope scope(isolate); |
| 414 env.Reset(v8_isolate, v8::Context::New(v8_isolate)); | 414 env.Reset(v8_isolate, v8::Context::New(v8_isolate)); |
| 415 } | 415 } |
| 416 DCHECK(!env.IsEmpty()); | 416 CHECK(!env.IsEmpty()); |
| 417 { | 417 { |
| 418 v8::HandleScope handle_scope(v8_isolate); | 418 v8::HandleScope handle_scope(v8_isolate); |
| 419 v8::Local<v8::Context>::New(v8_isolate, env)->Enter(); | 419 v8::Local<v8::Context>::New(v8_isolate, env)->Enter(); |
| 420 } | 420 } |
| 421 // Make sure all builtin scripts are cached. | 421 // Make sure all builtin scripts are cached. |
| 422 { | 422 { |
| 423 HandleScope scope(isolate); | 423 HandleScope scope(isolate); |
| 424 for (int i = 0; i < Natives::GetBuiltinsCount(); i++) { | 424 for (int i = 0; i < Natives::GetBuiltinsCount(); i++) { |
| 425 isolate->bootstrapper()->SourceLookup<Natives>(i); | 425 isolate->bootstrapper()->SourceLookup<Natives>(i); |
| 426 } | 426 } |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 v8::Isolate* v8_isolate = TestIsolate::NewInitialized(true); | 517 v8::Isolate* v8_isolate = TestIsolate::NewInitialized(true); |
| 518 Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate); | 518 Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate); |
| 519 { | 519 { |
| 520 v8::Isolate::Scope isolate_scope(v8_isolate); | 520 v8::Isolate::Scope isolate_scope(v8_isolate); |
| 521 | 521 |
| 522 v8::Persistent<v8::Context> env; | 522 v8::Persistent<v8::Context> env; |
| 523 { | 523 { |
| 524 HandleScope scope(isolate); | 524 HandleScope scope(isolate); |
| 525 env.Reset(v8_isolate, v8::Context::New(v8_isolate)); | 525 env.Reset(v8_isolate, v8::Context::New(v8_isolate)); |
| 526 } | 526 } |
| 527 DCHECK(!env.IsEmpty()); | 527 CHECK(!env.IsEmpty()); |
| 528 { | 528 { |
| 529 v8::HandleScope handle_scope(v8_isolate); | 529 v8::HandleScope handle_scope(v8_isolate); |
| 530 v8::Local<v8::Context>::New(v8_isolate, env)->Enter(); | 530 v8::Local<v8::Context>::New(v8_isolate, env)->Enter(); |
| 531 // After execution, e's function context refers to the global object. | 531 // After execution, e's function context refers to the global object. |
| 532 CompileRun( | 532 CompileRun( |
| 533 "var e;" | 533 "var e;" |
| 534 "(function() {" | 534 "(function() {" |
| 535 " e = function(s) { return eval (s); }" | 535 " e = function(s) { return eval (s); }" |
| 536 "})();" | 536 "})();" |
| 537 "var o = this;" | 537 "var o = this;" |
| (...skipping 968 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1506 } | 1506 } |
| 1507 CHECK(!cache->rejected); | 1507 CHECK(!cache->rejected); |
| 1508 v8::Local<v8::Value> result = script->BindToCurrentContext() | 1508 v8::Local<v8::Value> result = script->BindToCurrentContext() |
| 1509 ->Run(isolate2->GetCurrentContext()) | 1509 ->Run(isolate2->GetCurrentContext()) |
| 1510 .ToLocalChecked(); | 1510 .ToLocalChecked(); |
| 1511 CHECK(result->ToString(isolate2->GetCurrentContext()) | 1511 CHECK(result->ToString(isolate2->GetCurrentContext()) |
| 1512 .ToLocalChecked() | 1512 .ToLocalChecked() |
| 1513 ->Equals(isolate2->GetCurrentContext(), v8_str("abcdef")) | 1513 ->Equals(isolate2->GetCurrentContext(), v8_str("abcdef")) |
| 1514 .FromJust()); | 1514 .FromJust()); |
| 1515 } | 1515 } |
| 1516 DCHECK(toplevel_test_code_event_found); | 1516 CHECK(toplevel_test_code_event_found); |
| 1517 isolate2->Dispose(); | 1517 isolate2->Dispose(); |
| 1518 } | 1518 } |
| 1519 | 1519 |
| 1520 | 1520 |
| 1521 TEST(SerializeToplevelFlagChange) { | 1521 TEST(SerializeToplevelFlagChange) { |
| 1522 FLAG_serialize_toplevel = true; | 1522 FLAG_serialize_toplevel = true; |
| 1523 | 1523 |
| 1524 const char* source = "function f() { return 'abc'; }; f() + 'def'"; | 1524 const char* source = "function f() { return 'abc'; }; f() + 'def'"; |
| 1525 v8::ScriptCompiler::CachedData* cache = ProduceCache(source); | 1525 v8::ScriptCompiler::CachedData* cache = ProduceCache(source); |
| 1526 | 1526 |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1766 delete script_data; | 1766 delete script_data; |
| 1767 } | 1767 } |
| 1768 | 1768 |
| 1769 | 1769 |
| 1770 TEST(SerializationMemoryStats) { | 1770 TEST(SerializationMemoryStats) { |
| 1771 FLAG_profile_deserialization = true; | 1771 FLAG_profile_deserialization = true; |
| 1772 FLAG_always_opt = false; | 1772 FLAG_always_opt = false; |
| 1773 v8::StartupData blob = v8::V8::CreateSnapshotDataBlob(); | 1773 v8::StartupData blob = v8::V8::CreateSnapshotDataBlob(); |
| 1774 delete[] blob.data; | 1774 delete[] blob.data; |
| 1775 } | 1775 } |
| OLD | NEW |