| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 Handle<Context> context, | 490 Handle<Context> context, |
| 491 PretenureFlag pretenure) { | 491 PretenureFlag pretenure) { |
| 492 Handle<JSFunction> result = BaseNewFunctionFromSharedFunctionInfo( | 492 Handle<JSFunction> result = BaseNewFunctionFromSharedFunctionInfo( |
| 493 function_info, | 493 function_info, |
| 494 function_info->strict_mode() | 494 function_info->strict_mode() |
| 495 ? isolate()->strict_mode_function_map() | 495 ? isolate()->strict_mode_function_map() |
| 496 : isolate()->function_map(), | 496 : isolate()->function_map(), |
| 497 pretenure); | 497 pretenure); |
| 498 | 498 |
| 499 result->set_context(*context); | 499 result->set_context(*context); |
| 500 int number_of_literals = function_info->num_literals(); | 500 if (!function_info->bound()) { |
| 501 Handle<FixedArray> literals = NewFixedArray(number_of_literals, pretenure); | 501 int number_of_literals = function_info->num_literals(); |
| 502 if (number_of_literals > 0) { | 502 Handle<FixedArray> literals = NewFixedArray(number_of_literals, pretenure); |
| 503 // Store the object, regexp and array functions in the literals | 503 if (number_of_literals > 0) { |
| 504 // array prefix. These functions will be used when creating | 504 // Store the object, regexp and array functions in the literals |
| 505 // object, regexp and array literals in this function. | 505 // array prefix. These functions will be used when creating |
| 506 literals->set(JSFunction::kLiteralGlobalContextIndex, | 506 // object, regexp and array literals in this function. |
| 507 context->global_context()); | 507 literals->set(JSFunction::kLiteralGlobalContextIndex, |
| 508 context->global_context()); |
| 509 } |
| 510 result->set_literals(*literals); |
| 511 } else { |
| 512 result->set_function_bindings(isolate()->heap()->empty_fixed_array()); |
| 508 } | 513 } |
| 509 result->set_literals(*literals); | |
| 510 result->set_next_function_link(isolate()->heap()->undefined_value()); | 514 result->set_next_function_link(isolate()->heap()->undefined_value()); |
| 511 | 515 |
| 512 if (V8::UseCrankshaft() && | 516 if (V8::UseCrankshaft() && |
| 513 FLAG_always_opt && | 517 FLAG_always_opt && |
| 514 result->is_compiled() && | 518 result->is_compiled() && |
| 515 !function_info->is_toplevel() && | 519 !function_info->is_toplevel() && |
| 516 function_info->allows_lazy_compilation()) { | 520 function_info->allows_lazy_compilation()) { |
| 517 result->MarkForLazyRecompilation(); | 521 result->MarkForLazyRecompilation(); |
| 518 } | 522 } |
| 519 return result; | 523 return result; |
| (...skipping 817 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1337 | 1341 |
| 1338 | 1342 |
| 1339 Handle<Object> Factory::ToBoolean(bool value) { | 1343 Handle<Object> Factory::ToBoolean(bool value) { |
| 1340 return Handle<Object>(value | 1344 return Handle<Object>(value |
| 1341 ? isolate()->heap()->true_value() | 1345 ? isolate()->heap()->true_value() |
| 1342 : isolate()->heap()->false_value()); | 1346 : isolate()->heap()->false_value()); |
| 1343 } | 1347 } |
| 1344 | 1348 |
| 1345 | 1349 |
| 1346 } } // namespace v8::internal | 1350 } } // namespace v8::internal |
| OLD | NEW |