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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 isolate_ = isolate; | 95 isolate_ = isolate; |
96 function_ = NULL; | 96 function_ = NULL; |
97 scope_ = NULL; | 97 scope_ = NULL; |
98 global_scope_ = NULL; | 98 global_scope_ = NULL; |
99 extension_ = NULL; | 99 extension_ = NULL; |
100 pre_parse_data_ = NULL; | 100 pre_parse_data_ = NULL; |
101 zone_ = zone; | 101 zone_ = zone; |
102 deferred_handles_ = NULL; | 102 deferred_handles_ = NULL; |
103 code_stub_ = NULL; | 103 code_stub_ = NULL; |
104 prologue_offset_ = kPrologueOffsetNotSet; | 104 prologue_offset_ = kPrologueOffsetNotSet; |
| 105 frame_destroy_offset_ = kPrologueOffsetNotSet; |
105 opt_count_ = shared_info().is_null() ? 0 : shared_info()->opt_count(); | 106 opt_count_ = shared_info().is_null() ? 0 : shared_info()->opt_count(); |
106 if (mode == STUB) { | 107 if (mode == STUB) { |
107 mode_ = STUB; | 108 mode_ = STUB; |
108 return; | 109 return; |
109 } | 110 } |
110 mode_ = V8::UseCrankshaft() ? mode : NONOPT; | 111 mode_ = V8::UseCrankshaft() ? mode : NONOPT; |
111 if (script_->type()->value() == Script::TYPE_NATIVE) { | 112 if (script_->type()->value() == Script::TYPE_NATIVE) { |
112 MarkAsNative(); | 113 MarkAsNative(); |
113 } | 114 } |
114 if (!shared_info_.is_null()) { | 115 if (!shared_info_.is_null()) { |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 ASSERT_EQ(RelocInfo::kNoPosition, lit->function_token_position()); | 567 ASSERT_EQ(RelocInfo::kNoPosition, lit->function_token_position()); |
567 Compiler::SetFunctionInfo(result, lit, true, script); | 568 Compiler::SetFunctionInfo(result, lit, true, script); |
568 | 569 |
569 if (script->name()->IsString()) { | 570 if (script->name()->IsString()) { |
570 PROFILE(isolate, CodeCreateEvent( | 571 PROFILE(isolate, CodeCreateEvent( |
571 info->is_eval() | 572 info->is_eval() |
572 ? Logger::EVAL_TAG | 573 ? Logger::EVAL_TAG |
573 : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script), | 574 : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script), |
574 *info->code(), | 575 *info->code(), |
575 *result, | 576 *result, |
| 577 info, |
576 String::cast(script->name()))); | 578 String::cast(script->name()))); |
577 GDBJIT(AddCode(Handle<String>(String::cast(script->name())), | 579 GDBJIT(AddCode(Handle<String>(String::cast(script->name())), |
578 script, | 580 script, |
579 info->code(), | 581 info->code(), |
580 info)); | 582 info)); |
581 } else { | 583 } else { |
582 PROFILE(isolate, CodeCreateEvent( | 584 PROFILE(isolate, CodeCreateEvent( |
583 info->is_eval() | 585 info->is_eval() |
584 ? Logger::EVAL_TAG | 586 ? Logger::EVAL_TAG |
585 : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script), | 587 : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script), |
586 *info->code(), | 588 *info->code(), |
587 *result, | 589 *result, |
| 590 info, |
588 isolate->heap()->empty_string())); | 591 isolate->heap()->empty_string())); |
589 GDBJIT(AddCode(Handle<String>(), script, info->code(), info)); | 592 GDBJIT(AddCode(Handle<String>(), script, info->code(), info)); |
590 } | 593 } |
591 | 594 |
592 // Hint to the runtime system used when allocating space for initial | 595 // Hint to the runtime system used when allocating space for initial |
593 // property space by setting the expected number of properties for | 596 // property space by setting the expected number of properties for |
594 // the instances of the function. | 597 // the instances of the function. |
595 SetExpectedNofPropertiesFromEstimate(result, lit->expected_property_count()); | 598 SetExpectedNofPropertiesFromEstimate(result, lit->expected_property_count()); |
596 | 599 |
597 script->set_compilation_state( | 600 script->set_compilation_state( |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1149 Handle<Code> code = info->code(); | 1152 Handle<Code> code = info->code(); |
1150 if (*code == info->isolate()->builtins()->builtin(Builtins::kLazyCompile)) | 1153 if (*code == info->isolate()->builtins()->builtin(Builtins::kLazyCompile)) |
1151 return; | 1154 return; |
1152 if (script->name()->IsString()) { | 1155 if (script->name()->IsString()) { |
1153 int line_num = GetScriptLineNumber(script, shared->start_position()) + 1; | 1156 int line_num = GetScriptLineNumber(script, shared->start_position()) + 1; |
1154 USE(line_num); | 1157 USE(line_num); |
1155 PROFILE(info->isolate(), | 1158 PROFILE(info->isolate(), |
1156 CodeCreateEvent(Logger::ToNativeByScript(tag, *script), | 1159 CodeCreateEvent(Logger::ToNativeByScript(tag, *script), |
1157 *code, | 1160 *code, |
1158 *shared, | 1161 *shared, |
| 1162 info, |
1159 String::cast(script->name()), | 1163 String::cast(script->name()), |
1160 line_num)); | 1164 line_num)); |
1161 } else { | 1165 } else { |
1162 PROFILE(info->isolate(), | 1166 PROFILE(info->isolate(), |
1163 CodeCreateEvent(Logger::ToNativeByScript(tag, *script), | 1167 CodeCreateEvent(Logger::ToNativeByScript(tag, *script), |
1164 *code, | 1168 *code, |
1165 *shared, | 1169 *shared, |
| 1170 info, |
1166 shared->DebugName())); | 1171 shared->DebugName())); |
1167 } | 1172 } |
1168 } | 1173 } |
1169 | 1174 |
1170 GDBJIT(AddCode(Handle<String>(shared->DebugName()), | 1175 GDBJIT(AddCode(Handle<String>(shared->DebugName()), |
1171 Handle<Script>(info->script()), | 1176 Handle<Script>(info->script()), |
1172 Handle<Code>(info->code()), | 1177 Handle<Code>(info->code()), |
1173 info)); | 1178 info)); |
1174 } | 1179 } |
1175 | 1180 |
1176 } } // namespace v8::internal | 1181 } } // namespace v8::internal |
OLD | NEW |