OLD | NEW |
1 // Copyright 2007-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2007-2008 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 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
531 v8::internal::Heap::CollectAllGarbage(); | 531 v8::internal::Heap::CollectAllGarbage(); |
532 CHECK_EQ(0, TestAsciiResource::dispose_count); | 532 CHECK_EQ(0, TestAsciiResource::dispose_count); |
533 } | 533 } |
534 v8::internal::CompilationCache::Clear(); | 534 v8::internal::CompilationCache::Clear(); |
535 v8::internal::Heap::CollectAllGarbage(); | 535 v8::internal::Heap::CollectAllGarbage(); |
536 CHECK_EQ(1, TestAsciiResource::dispose_count); | 536 CHECK_EQ(1, TestAsciiResource::dispose_count); |
537 } | 537 } |
538 | 538 |
539 | 539 |
540 THREADED_TEST(UsingExternalString) { | 540 THREADED_TEST(UsingExternalString) { |
541 v8::HandleScope scope; | 541 { |
542 uint16_t* two_byte_string = AsciiToTwoByteString("test string"); | 542 v8::HandleScope scope; |
543 Local<String> string = String::NewExternal(new TestResource(two_byte_string)); | 543 uint16_t* two_byte_string = AsciiToTwoByteString("test string"); |
544 i::Handle<i::String> istring = v8::Utils::OpenHandle(*string); | 544 Local<String> string = |
545 // Trigger GCs so that the newly allocated string moves to old gen. | 545 String::NewExternal(new TestResource(two_byte_string)); |
546 i::Heap::CollectGarbage(0, i::NEW_SPACE); // in survivor space now | 546 i::Handle<i::String> istring = v8::Utils::OpenHandle(*string); |
547 i::Heap::CollectGarbage(0, i::NEW_SPACE); // in old gen now | 547 // Trigger GCs so that the newly allocated string moves to old gen. |
548 i::Handle<i::String> isymbol = i::Factory::SymbolFromString(istring); | 548 i::Heap::CollectGarbage(0, i::NEW_SPACE); // in survivor space now |
549 CHECK(isymbol->IsSymbol()); | 549 i::Heap::CollectGarbage(0, i::NEW_SPACE); // in old gen now |
| 550 i::Handle<i::String> isymbol = i::Factory::SymbolFromString(istring); |
| 551 CHECK(isymbol->IsSymbol()); |
| 552 } |
| 553 i::Heap::CollectAllGarbage(); |
550 } | 554 } |
551 | 555 |
552 | 556 |
553 THREADED_TEST(UsingExternalAsciiString) { | 557 THREADED_TEST(UsingExternalAsciiString) { |
554 v8::HandleScope scope; | 558 { |
555 const char* one_byte_string = "test string"; | 559 v8::HandleScope scope; |
556 Local<String> string = String::NewExternal( | 560 const char* one_byte_string = "test string"; |
557 new TestAsciiResource(i::StrDup(one_byte_string))); | 561 Local<String> string = String::NewExternal( |
558 i::Handle<i::String> istring = v8::Utils::OpenHandle(*string); | 562 new TestAsciiResource(i::StrDup(one_byte_string))); |
559 // Trigger GCs so that the newly allocated string moves to old gen. | 563 i::Handle<i::String> istring = v8::Utils::OpenHandle(*string); |
560 i::Heap::CollectGarbage(0, i::NEW_SPACE); // in survivor space now | 564 // Trigger GCs so that the newly allocated string moves to old gen. |
561 i::Heap::CollectGarbage(0, i::NEW_SPACE); // in old gen now | 565 i::Heap::CollectGarbage(0, i::NEW_SPACE); // in survivor space now |
562 i::Handle<i::String> isymbol = i::Factory::SymbolFromString(istring); | 566 i::Heap::CollectGarbage(0, i::NEW_SPACE); // in old gen now |
563 CHECK(isymbol->IsSymbol()); | 567 i::Handle<i::String> isymbol = i::Factory::SymbolFromString(istring); |
| 568 CHECK(isymbol->IsSymbol()); |
| 569 } |
| 570 i::Heap::CollectAllGarbage(); |
564 } | 571 } |
565 | 572 |
566 | 573 |
567 THREADED_TEST(GlobalProperties) { | 574 THREADED_TEST(GlobalProperties) { |
568 v8::HandleScope scope; | 575 v8::HandleScope scope; |
569 LocalContext env; | 576 LocalContext env; |
570 v8::Handle<v8::Object> global = env->Global(); | 577 v8::Handle<v8::Object> global = env->Global(); |
571 global->Set(v8_str("pi"), v8_num(3.1415926)); | 578 global->Set(v8_str("pi"), v8_num(3.1415926)); |
572 Local<Value> pi = global->Get(v8_str("pi")); | 579 Local<Value> pi = global->Get(v8_str("pi")); |
573 CHECK_EQ(3.1415926, pi->NumberValue()); | 580 CHECK_EQ(3.1415926, pi->NumberValue()); |
(...skipping 6097 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6671 calling_context2->Exit(); | 6678 calling_context2->Exit(); |
6672 | 6679 |
6673 // Dispose the contexts to allow them to be garbage collected. | 6680 // Dispose the contexts to allow them to be garbage collected. |
6674 calling_context0.Dispose(); | 6681 calling_context0.Dispose(); |
6675 calling_context1.Dispose(); | 6682 calling_context1.Dispose(); |
6676 calling_context2.Dispose(); | 6683 calling_context2.Dispose(); |
6677 calling_context0.Clear(); | 6684 calling_context0.Clear(); |
6678 calling_context1.Clear(); | 6685 calling_context1.Clear(); |
6679 calling_context2.Clear(); | 6686 calling_context2.Clear(); |
6680 } | 6687 } |
OLD | NEW |