OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/codegen.h" | 7 #include "src/codegen.h" |
8 #include "src/compiler.h" | 8 #include "src/compiler.h" |
9 #include "src/debug.h" | 9 #include "src/debug.h" |
10 #include "src/full-codegen.h" | 10 #include "src/full-codegen.h" |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 isolate, Logger::TimerEventScope::v8_compile_full_code); | 294 isolate, Logger::TimerEventScope::v8_compile_full_code); |
295 | 295 |
296 Handle<Script> script = info->script(); | 296 Handle<Script> script = info->script(); |
297 if (!script->IsUndefined() && !script->source()->IsUndefined()) { | 297 if (!script->IsUndefined() && !script->source()->IsUndefined()) { |
298 int len = String::cast(script->source())->length(); | 298 int len = String::cast(script->source())->length(); |
299 isolate->counters()->total_full_codegen_source_size()->Increment(len); | 299 isolate->counters()->total_full_codegen_source_size()->Increment(len); |
300 } | 300 } |
301 CodeGenerator::MakeCodePrologue(info, "full"); | 301 CodeGenerator::MakeCodePrologue(info, "full"); |
302 const int kInitialBufferSize = 4 * KB; | 302 const int kInitialBufferSize = 4 * KB; |
303 MacroAssembler masm(info->isolate(), NULL, kInitialBufferSize); | 303 MacroAssembler masm(info->isolate(), NULL, kInitialBufferSize); |
| 304 if (FLAG_serialize_toplevel && |
| 305 info->cached_data_mode() == PRODUCE_CACHED_DATA && info->is_global()) { |
| 306 masm.enable_serializer(); |
| 307 } |
| 308 |
304 #ifdef ENABLE_GDB_JIT_INTERFACE | 309 #ifdef ENABLE_GDB_JIT_INTERFACE |
305 masm.positions_recorder()->StartGDBJITLineInfoRecording(); | 310 masm.positions_recorder()->StartGDBJITLineInfoRecording(); |
306 #endif | 311 #endif |
307 LOG_CODE_EVENT(isolate, | 312 LOG_CODE_EVENT(isolate, |
308 CodeStartLinePosInfoRecordEvent(masm.positions_recorder())); | 313 CodeStartLinePosInfoRecordEvent(masm.positions_recorder())); |
309 | 314 |
310 FullCodeGenerator cgen(&masm, info); | 315 FullCodeGenerator cgen(&masm, info); |
311 cgen.Generate(); | 316 cgen.Generate(); |
312 if (cgen.HasStackOverflow()) { | 317 if (cgen.HasStackOverflow()) { |
313 ASSERT(!isolate->has_pending_exception()); | 318 ASSERT(!isolate->has_pending_exception()); |
(...skipping 1376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1690 } | 1695 } |
1691 return true; | 1696 return true; |
1692 } | 1697 } |
1693 #endif // DEBUG | 1698 #endif // DEBUG |
1694 | 1699 |
1695 | 1700 |
1696 #undef __ | 1701 #undef __ |
1697 | 1702 |
1698 | 1703 |
1699 } } // namespace v8::internal | 1704 } } // namespace v8::internal |
OLD | NEW |