| 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 6518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6529 FlagAndPersistent object_a, object_b; | 6529 FlagAndPersistent object_a, object_b; |
| 6530 | 6530 |
| 6531 intptr_t big_heap_size; | 6531 intptr_t big_heap_size; |
| 6532 | 6532 |
| 6533 { | 6533 { |
| 6534 v8::HandleScope handle_scope(iso); | 6534 v8::HandleScope handle_scope(iso); |
| 6535 Local<Object> a(v8::Object::New(iso)); | 6535 Local<Object> a(v8::Object::New(iso)); |
| 6536 Local<Object> b(v8::Object::New(iso)); | 6536 Local<Object> b(v8::Object::New(iso)); |
| 6537 object_a.handle.Reset(iso, a); | 6537 object_a.handle.Reset(iso, a); |
| 6538 object_b.handle.Reset(iso, b); | 6538 object_b.handle.Reset(iso, b); |
| 6539 if (interlinked) { | 6539 if (interlinked && |
| 6540 !v8::internal::FLAG_scavenge_reclaim_unmodified_objects) { |
| 6540 a->Set(v8_str("x"), b); | 6541 a->Set(v8_str("x"), b); |
| 6541 b->Set(v8_str("x"), a); | 6542 b->Set(v8_str("x"), a); |
| 6542 } | 6543 } |
| 6543 if (global_gc) { | 6544 if (global_gc) { |
| 6544 CcTest::heap()->CollectAllGarbage(); | 6545 CcTest::heap()->CollectAllGarbage(); |
| 6545 } else { | 6546 } else { |
| 6546 CcTest::heap()->CollectGarbage(i::NEW_SPACE); | 6547 CcTest::heap()->CollectGarbage(i::NEW_SPACE); |
| 6547 } | 6548 } |
| 6548 // We are relying on this creating a big flag array and reserving the space | 6549 // We are relying on this creating a big flag array and reserving the space |
| 6549 // up front. | 6550 // up front. |
| 6550 v8::Handle<Value> big_array = CompileRun("new Array(5000)"); | 6551 v8::Handle<Value> big_array = CompileRun("new Array(5000)"); |
| 6551 a->Set(v8_str("y"), big_array); | 6552 if (!v8::internal::FLAG_scavenge_reclaim_unmodified_objects) { |
| 6553 a->Set(v8_str("y"), big_array); |
| 6554 } |
| 6552 big_heap_size = CcTest::heap()->SizeOfObjects(); | 6555 big_heap_size = CcTest::heap()->SizeOfObjects(); |
| 6553 } | 6556 } |
| 6554 | 6557 |
| 6555 object_a.flag = false; | 6558 object_a.flag = false; |
| 6556 object_b.flag = false; | 6559 object_b.flag = false; |
| 6557 object_a.handle.SetWeak(&object_a, &SetFlag, | 6560 object_a.handle.SetWeak(&object_a, &SetFlag, |
| 6558 v8::WeakCallbackType::kParameter); | 6561 v8::WeakCallbackType::kParameter); |
| 6559 object_b.handle.SetWeak(&object_b, &SetFlag, | 6562 object_b.handle.SetWeak(&object_b, &SetFlag, |
| 6560 v8::WeakCallbackType::kParameter); | 6563 v8::WeakCallbackType::kParameter); |
| 6561 CHECK(!object_b.handle.IsIndependent()); | 6564 CHECK(!object_b.handle.IsIndependent()); |
| (...skipping 15378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 21940 LocalContext env; | 21943 LocalContext env; |
| 21941 | 21944 |
| 21942 env->Global()->Set(v8_str("keys"), v8::Array::GetKeysIterator(isolate)); | 21945 env->Global()->Set(v8_str("keys"), v8::Array::GetKeysIterator(isolate)); |
| 21943 env->Global()->Set(v8_str("values"), v8::Array::GetValuesIterator(isolate)); | 21946 env->Global()->Set(v8_str("values"), v8::Array::GetValuesIterator(isolate)); |
| 21944 env->Global()->Set(v8_str("entries"), v8::Array::GetEntriesIterator(isolate)); | 21947 env->Global()->Set(v8_str("entries"), v8::Array::GetEntriesIterator(isolate)); |
| 21945 | 21948 |
| 21946 ExpectString("typeof keys", "function"); | 21949 ExpectString("typeof keys", "function"); |
| 21947 ExpectString("typeof values", "function"); | 21950 ExpectString("typeof values", "function"); |
| 21948 ExpectString("typeof entries", "function"); | 21951 ExpectString("typeof entries", "function"); |
| 21949 } | 21952 } |
| OLD | NEW |