| OLD | NEW | 
|---|
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 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 7854 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7865   Handle<JSFunction> compiled = Factory::NewFunctionFromSharedFunctionInfo( | 7865   Handle<JSFunction> compiled = Factory::NewFunctionFromSharedFunctionInfo( | 
| 7866       shared, | 7866       shared, | 
| 7867       Handle<Context>(Top::context()), | 7867       Handle<Context>(Top::context()), | 
| 7868       NOT_TENURED); | 7868       NOT_TENURED); | 
| 7869   return MakePair(*compiled, *receiver); | 7869   return MakePair(*compiled, *receiver); | 
| 7870 } | 7870 } | 
| 7871 | 7871 | 
| 7872 | 7872 | 
| 7873 static ObjectPair Runtime_ResolvePossiblyDirectEval(Arguments args) { | 7873 static ObjectPair Runtime_ResolvePossiblyDirectEval(Arguments args) { | 
| 7874   ASSERT(args.length() == 4); | 7874   ASSERT(args.length() == 4); | 
| 7875   if (!args[0]->IsJSFunction()) { |  | 
| 7876     return MakePair(Top::ThrowIllegalOperation(), NULL); |  | 
| 7877   } |  | 
| 7878 | 7875 | 
| 7879   HandleScope scope; | 7876   HandleScope scope; | 
| 7880   Handle<JSFunction> callee = args.at<JSFunction>(0); | 7877   Handle<Object> callee = args.at<Object>(0); | 
| 7881   Handle<Object> receiver;  // Will be overwritten. | 7878   Handle<Object> receiver;  // Will be overwritten. | 
| 7882 | 7879 | 
| 7883   // Compute the calling context. | 7880   // Compute the calling context. | 
| 7884   Handle<Context> context = Handle<Context>(Top::context()); | 7881   Handle<Context> context = Handle<Context>(Top::context()); | 
| 7885 #ifdef DEBUG | 7882 #ifdef DEBUG | 
| 7886   // Make sure Top::context() agrees with the old code that traversed | 7883   // Make sure Top::context() agrees with the old code that traversed | 
| 7887   // the stack frames to compute the context. | 7884   // the stack frames to compute the context. | 
| 7888   StackFrameLocator locator; | 7885   StackFrameLocator locator; | 
| 7889   JavaScriptFrame* frame = locator.FindJavaScriptFrame(0); | 7886   JavaScriptFrame* frame = locator.FindJavaScriptFrame(0); | 
| 7890   ASSERT(Context::cast(frame->context()) == *context); | 7887   ASSERT(Context::cast(frame->context()) == *context); | 
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 7938   ASSERT(args[3]->IsSmi()); | 7935   ASSERT(args[3]->IsSmi()); | 
| 7939   return CompileGlobalEval(args.at<String>(1), | 7936   return CompileGlobalEval(args.at<String>(1), | 
| 7940                            args.at<Object>(2), | 7937                            args.at<Object>(2), | 
| 7941                            static_cast<StrictModeFlag>( | 7938                            static_cast<StrictModeFlag>( | 
| 7942                                 Smi::cast(args[3])->value())); | 7939                                 Smi::cast(args[3])->value())); | 
| 7943 } | 7940 } | 
| 7944 | 7941 | 
| 7945 | 7942 | 
| 7946 static ObjectPair Runtime_ResolvePossiblyDirectEvalNoLookup(Arguments args) { | 7943 static ObjectPair Runtime_ResolvePossiblyDirectEvalNoLookup(Arguments args) { | 
| 7947   ASSERT(args.length() == 4); | 7944   ASSERT(args.length() == 4); | 
| 7948   if (!args[0]->IsJSFunction()) { |  | 
| 7949     return MakePair(Top::ThrowIllegalOperation(), NULL); |  | 
| 7950   } |  | 
| 7951 | 7945 | 
| 7952   HandleScope scope; | 7946   HandleScope scope; | 
| 7953   Handle<JSFunction> callee = args.at<JSFunction>(0); | 7947   Handle<Object> callee = args.at<Object>(0); | 
| 7954 | 7948 | 
| 7955   // 'eval' is bound in the global context, but it may have been overwritten. | 7949   // 'eval' is bound in the global context, but it may have been overwritten. | 
| 7956   // Compare it to the builtin 'GlobalEval' function to make sure. | 7950   // Compare it to the builtin 'GlobalEval' function to make sure. | 
| 7957   if (*callee != Top::global_context()->global_eval_fun() || | 7951   if (*callee != Top::global_context()->global_eval_fun() || | 
| 7958       !args[1]->IsString()) { | 7952       !args[1]->IsString()) { | 
| 7959     return MakePair(*callee, Top::context()->global()->global_receiver()); | 7953     return MakePair(*callee, Top::context()->global()->global_receiver()); | 
| 7960   } | 7954   } | 
| 7961 | 7955 | 
| 7962   ASSERT(args[3]->IsSmi()); | 7956   ASSERT(args[3]->IsSmi()); | 
| 7963   return CompileGlobalEval(args.at<String>(1), | 7957   return CompileGlobalEval(args.at<String>(1), | 
| (...skipping 3359 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 11323   } else { | 11317   } else { | 
| 11324     // Handle last resort GC and make sure to allow future allocations | 11318     // Handle last resort GC and make sure to allow future allocations | 
| 11325     // to grow the heap without causing GCs (if possible). | 11319     // to grow the heap without causing GCs (if possible). | 
| 11326     Counters::gc_last_resort_from_js.Increment(); | 11320     Counters::gc_last_resort_from_js.Increment(); | 
| 11327     Heap::CollectAllGarbage(false); | 11321     Heap::CollectAllGarbage(false); | 
| 11328   } | 11322   } | 
| 11329 } | 11323 } | 
| 11330 | 11324 | 
| 11331 | 11325 | 
| 11332 } }  // namespace v8::internal | 11326 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|