| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-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 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 // Allocate the empty function as the prototype for function ECMAScript | 463 // Allocate the empty function as the prototype for function ECMAScript |
| 464 // 262 15.3.4. | 464 // 262 15.3.4. |
| 465 Handle<String> symbol = Factory::LookupAsciiSymbol("Empty"); | 465 Handle<String> symbol = Factory::LookupAsciiSymbol("Empty"); |
| 466 Handle<JSFunction> empty_function = | 466 Handle<JSFunction> empty_function = |
| 467 Factory::NewFunctionWithoutPrototype(symbol); | 467 Factory::NewFunctionWithoutPrototype(symbol); |
| 468 | 468 |
| 469 // --- E m p t y --- | 469 // --- E m p t y --- |
| 470 Handle<Code> code = | 470 Handle<Code> code = |
| 471 Handle<Code>(Builtins::builtin(Builtins::EmptyFunction)); | 471 Handle<Code>(Builtins::builtin(Builtins::EmptyFunction)); |
| 472 empty_function->set_code(*code); | 472 empty_function->set_code(*code); |
| 473 empty_function->shared()->set_code(*code); |
| 473 Handle<String> source = Factory::NewStringFromAscii(CStrVector("() {}")); | 474 Handle<String> source = Factory::NewStringFromAscii(CStrVector("() {}")); |
| 474 Handle<Script> script = Factory::NewScript(source); | 475 Handle<Script> script = Factory::NewScript(source); |
| 475 script->set_type(Smi::FromInt(Script::TYPE_NATIVE)); | 476 script->set_type(Smi::FromInt(Script::TYPE_NATIVE)); |
| 476 empty_function->shared()->set_script(*script); | 477 empty_function->shared()->set_script(*script); |
| 477 empty_function->shared()->set_start_position(0); | 478 empty_function->shared()->set_start_position(0); |
| 478 empty_function->shared()->set_end_position(source->length()); | 479 empty_function->shared()->set_end_position(source->length()); |
| 479 empty_function->shared()->DontAdaptArguments(); | 480 empty_function->shared()->DontAdaptArguments(); |
| 480 global_context()->function_map()->set_prototype(*empty_function); | 481 global_context()->function_map()->set_prototype(*empty_function); |
| 481 global_context()->function_instance_map()->set_prototype(*empty_function); | 482 global_context()->function_instance_map()->set_prototype(*empty_function); |
| 482 global_context()->function_without_prototype_map()-> | 483 global_context()->function_without_prototype_map()-> |
| (...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1538 HandleScope scope; | 1539 HandleScope scope; |
| 1539 for (int i = 0; i < Builtins::NumberOfJavaScriptBuiltins(); i++) { | 1540 for (int i = 0; i < Builtins::NumberOfJavaScriptBuiltins(); i++) { |
| 1540 Builtins::JavaScript id = static_cast<Builtins::JavaScript>(i); | 1541 Builtins::JavaScript id = static_cast<Builtins::JavaScript>(i); |
| 1541 Handle<String> name = Factory::LookupAsciiSymbol(Builtins::GetName(id)); | 1542 Handle<String> name = Factory::LookupAsciiSymbol(Builtins::GetName(id)); |
| 1542 Handle<JSFunction> function | 1543 Handle<JSFunction> function |
| 1543 = Handle<JSFunction>(JSFunction::cast(builtins->GetProperty(*name))); | 1544 = Handle<JSFunction>(JSFunction::cast(builtins->GetProperty(*name))); |
| 1544 builtins->set_javascript_builtin(id, *function); | 1545 builtins->set_javascript_builtin(id, *function); |
| 1545 Handle<SharedFunctionInfo> shared | 1546 Handle<SharedFunctionInfo> shared |
| 1546 = Handle<SharedFunctionInfo>(function->shared()); | 1547 = Handle<SharedFunctionInfo>(function->shared()); |
| 1547 if (!EnsureCompiled(shared, CLEAR_EXCEPTION)) return false; | 1548 if (!EnsureCompiled(shared, CLEAR_EXCEPTION)) return false; |
| 1549 // Set the code object on the function object. |
| 1550 function->set_code(function->shared()->code()); |
| 1548 builtins->set_javascript_builtin_code(id, shared->code()); | 1551 builtins->set_javascript_builtin_code(id, shared->code()); |
| 1549 } | 1552 } |
| 1550 return true; | 1553 return true; |
| 1551 } | 1554 } |
| 1552 | 1555 |
| 1553 | 1556 |
| 1554 bool Genesis::ConfigureGlobalObjects( | 1557 bool Genesis::ConfigureGlobalObjects( |
| 1555 v8::Handle<v8::ObjectTemplate> global_proxy_template) { | 1558 v8::Handle<v8::ObjectTemplate> global_proxy_template) { |
| 1556 Handle<JSObject> global_proxy( | 1559 Handle<JSObject> global_proxy( |
| 1557 JSObject::cast(global_context()->global_proxy())); | 1560 JSObject::cast(global_context()->global_proxy())); |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1810 } | 1813 } |
| 1811 | 1814 |
| 1812 | 1815 |
| 1813 // Restore statics that are thread local. | 1816 // Restore statics that are thread local. |
| 1814 char* BootstrapperActive::RestoreState(char* from) { | 1817 char* BootstrapperActive::RestoreState(char* from) { |
| 1815 nesting_ = *reinterpret_cast<int*>(from); | 1818 nesting_ = *reinterpret_cast<int*>(from); |
| 1816 return from + sizeof(nesting_); | 1819 return from + sizeof(nesting_); |
| 1817 } | 1820 } |
| 1818 | 1821 |
| 1819 } } // namespace v8::internal | 1822 } } // namespace v8::internal |
| OLD | NEW |