OLD | NEW |
---|---|
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | |
Lasse Reichstein
2009/09/04 10:52:15
Woops, added back in.
| |
2 // Redistribution and use in source and binary forms, with or without | 1 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 2 // modification, are permitted provided that the following conditions are |
4 // met: | 3 // met: |
5 // | 4 // |
6 // * Redistributions of source code must retain the above copyright | 5 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 6 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 7 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 8 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 9 // disclaimer in the documentation and/or other materials provided |
11 // with the distribution. | 10 // with the distribution. |
(...skipping 4593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4605 if (constructor != context_extension_function) return holder; | 4604 if (constructor != context_extension_function) return holder; |
4606 // Fall back to using the global object as the receiver if the | 4605 // Fall back to using the global object as the receiver if the |
4607 // property turns out to be a local variable allocated in a context | 4606 // property turns out to be a local variable allocated in a context |
4608 // extension object - introduced via eval. | 4607 // extension object - introduced via eval. |
4609 return top->global()->global_receiver(); | 4608 return top->global()->global_receiver(); |
4610 } | 4609 } |
4611 | 4610 |
4612 | 4611 |
4613 static ObjectPair LoadContextSlotHelper(Arguments args, bool throw_error) { | 4612 static ObjectPair LoadContextSlotHelper(Arguments args, bool throw_error) { |
4614 HandleScope scope; | 4613 HandleScope scope; |
4615 ASSERT(args.length() == 2); | 4614 ASSERT_EQ(2, args.length()); |
4616 | 4615 |
4617 if (!args[0]->IsContext() || !args[1]->IsString()) { | 4616 if (!args[0]->IsContext() || !args[1]->IsString()) { |
4618 return MakePair(Top::ThrowIllegalOperation(), NULL); | 4617 return MakePair(Top::ThrowIllegalOperation(), NULL); |
4619 } | 4618 } |
4620 Handle<Context> context = args.at<Context>(0); | 4619 Handle<Context> context = args.at<Context>(0); |
4621 Handle<String> name = args.at<String>(1); | 4620 Handle<String> name = args.at<String>(1); |
4622 | 4621 |
4623 int index; | 4622 int index; |
4624 PropertyAttributes attributes; | 4623 PropertyAttributes attributes; |
4625 ContextLookupFlags flags = FOLLOW_CHAINS; | 4624 ContextLookupFlags flags = FOLLOW_CHAINS; |
(...skipping 3045 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7671 } else { | 7670 } else { |
7672 // Handle last resort GC and make sure to allow future allocations | 7671 // Handle last resort GC and make sure to allow future allocations |
7673 // to grow the heap without causing GCs (if possible). | 7672 // to grow the heap without causing GCs (if possible). |
7674 Counters::gc_last_resort_from_js.Increment(); | 7673 Counters::gc_last_resort_from_js.Increment(); |
7675 Heap::CollectAllGarbage(false); | 7674 Heap::CollectAllGarbage(false); |
7676 } | 7675 } |
7677 } | 7676 } |
7678 | 7677 |
7679 | 7678 |
7680 } } // namespace v8::internal | 7679 } } // namespace v8::internal |
OLD | NEW |