Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Side by Side Diff: src/factory.cc

Issue 261253005: Clean up debugger flags. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/factory.h ('k') | src/flag-definitions.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 "factory.h" 5 #include "factory.h"
6 6
7 #include "conversions.h" 7 #include "conversions.h"
8 #include "isolate-inl.h" 8 #include "isolate-inl.h"
9 #include "macro-assembler.h" 9 #include "macro-assembler.h"
10 10
(...skipping 1377 matching lines...) Expand 10 before | Expand all | Expand 10 after
1388 isolate()->heap()->AllocateCode(object_size, immovable), 1388 isolate()->heap()->AllocateCode(object_size, immovable),
1389 Code); 1389 Code);
1390 } 1390 }
1391 1391
1392 1392
1393 Handle<Code> Factory::NewCode(const CodeDesc& desc, 1393 Handle<Code> Factory::NewCode(const CodeDesc& desc,
1394 Code::Flags flags, 1394 Code::Flags flags,
1395 Handle<Object> self_ref, 1395 Handle<Object> self_ref,
1396 bool immovable, 1396 bool immovable,
1397 bool crankshafted, 1397 bool crankshafted,
1398 int prologue_offset) { 1398 int prologue_offset,
1399 bool is_debug) {
1399 Handle<ByteArray> reloc_info = NewByteArray(desc.reloc_size, TENURED); 1400 Handle<ByteArray> reloc_info = NewByteArray(desc.reloc_size, TENURED);
1400 Handle<ConstantPoolArray> constant_pool = 1401 Handle<ConstantPoolArray> constant_pool =
1401 desc.origin->NewConstantPool(isolate()); 1402 desc.origin->NewConstantPool(isolate());
1402 1403
1403 // Compute size. 1404 // Compute size.
1404 int body_size = RoundUp(desc.instr_size, kObjectAlignment); 1405 int body_size = RoundUp(desc.instr_size, kObjectAlignment);
1405 int obj_size = Code::SizeFor(body_size); 1406 int obj_size = Code::SizeFor(body_size);
1406 1407
1407 Handle<Code> code = NewCodeRaw(obj_size, immovable); 1408 Handle<Code> code = NewCodeRaw(obj_size, immovable);
1408 ASSERT(!isolate()->code_range()->exists() || 1409 ASSERT(!isolate()->code_range()->exists() ||
(...skipping 12 matching lines...) Expand all
1421 code->set_is_crankshafted(crankshafted); 1422 code->set_is_crankshafted(crankshafted);
1422 code->set_deoptimization_data(*empty_fixed_array(), SKIP_WRITE_BARRIER); 1423 code->set_deoptimization_data(*empty_fixed_array(), SKIP_WRITE_BARRIER);
1423 code->set_raw_type_feedback_info(*undefined_value()); 1424 code->set_raw_type_feedback_info(*undefined_value());
1424 code->set_next_code_link(*undefined_value()); 1425 code->set_next_code_link(*undefined_value());
1425 code->set_handler_table(*empty_fixed_array(), SKIP_WRITE_BARRIER); 1426 code->set_handler_table(*empty_fixed_array(), SKIP_WRITE_BARRIER);
1426 code->set_prologue_offset(prologue_offset); 1427 code->set_prologue_offset(prologue_offset);
1427 if (code->kind() == Code::OPTIMIZED_FUNCTION) { 1428 if (code->kind() == Code::OPTIMIZED_FUNCTION) {
1428 code->set_marked_for_deoptimization(false); 1429 code->set_marked_for_deoptimization(false);
1429 } 1430 }
1430 1431
1432 if (is_debug) {
1433 ASSERT(code->kind() == Code::FUNCTION);
1434 code->set_has_debug_break_slots(true);
1435 }
1436
1431 desc.origin->PopulateConstantPool(*constant_pool); 1437 desc.origin->PopulateConstantPool(*constant_pool);
1432 code->set_constant_pool(*constant_pool); 1438 code->set_constant_pool(*constant_pool);
1433 1439
1434 if (code->kind() == Code::FUNCTION) {
1435 code->set_has_debug_break_slots(isolate()->debugger()->IsDebuggerActive());
1436 }
1437
1438 // Allow self references to created code object by patching the handle to 1440 // Allow self references to created code object by patching the handle to
1439 // point to the newly allocated Code object. 1441 // point to the newly allocated Code object.
1440 if (!self_ref.is_null()) *(self_ref.location()) = *code; 1442 if (!self_ref.is_null()) *(self_ref.location()) = *code;
1441 1443
1442 // Migrate generated code. 1444 // Migrate generated code.
1443 // The generated code can contain Object** values (typically from handles) 1445 // The generated code can contain Object** values (typically from handles)
1444 // that are dereferenced during the copy to point directly to the actual heap 1446 // that are dereferenced during the copy to point directly to the actual heap
1445 // objects. These pointers can include references to the code object itself, 1447 // objects. These pointers can include references to the code object itself,
1446 // through the self_reference parameter. 1448 // through the self_reference parameter.
1447 code->CopyFrom(desc); 1449 code->CopyFrom(desc);
(...skipping 882 matching lines...) Expand 10 before | Expand all | Expand 10 after
2330 return Handle<Object>::null(); 2332 return Handle<Object>::null();
2331 } 2333 }
2332 2334
2333 2335
2334 Handle<Object> Factory::ToBoolean(bool value) { 2336 Handle<Object> Factory::ToBoolean(bool value) {
2335 return value ? true_value() : false_value(); 2337 return value ? true_value() : false_value();
2336 } 2338 }
2337 2339
2338 2340
2339 } } // namespace v8::internal 2341 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/factory.h ('k') | src/flag-definitions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698