| Index: src/full-codegen.h
|
| ===================================================================
|
| --- src/full-codegen.h (revision 10686)
|
| +++ src/full-codegen.h (working copy)
|
| @@ -77,29 +77,32 @@
|
| TOS_REG
|
| };
|
|
|
| - explicit FullCodeGenerator(MacroAssembler* masm)
|
| + FullCodeGenerator(MacroAssembler* masm, CompilationInfo* info)
|
| : masm_(masm),
|
| - info_(NULL),
|
| - scope_(NULL),
|
| + info_(info),
|
| + scope_(info->scope()),
|
| nesting_stack_(NULL),
|
| loop_depth_(0),
|
| global_count_(0),
|
| context_(NULL),
|
| - bailout_entries_(0),
|
| + bailout_entries_(info->HasDeoptimizationSupport()
|
| + ? info->function()->ast_node_count() : 0),
|
| stack_checks_(2), // There's always at least one.
|
| - type_feedback_cells_(0) {
|
| - }
|
| + type_feedback_cells_(info->HasDeoptimizationSupport()
|
| + ? info->function()->ast_node_count() : 0) { }
|
|
|
| static bool MakeCode(CompilationInfo* info);
|
|
|
| - void Generate(CompilationInfo* info);
|
| + void Generate();
|
| void PopulateDeoptimizationData(Handle<Code> code);
|
| void PopulateTypeFeedbackCells(Handle<Code> code);
|
|
|
| Handle<FixedArray> handler_table() { return handler_table_; }
|
|
|
| - class StateField : public BitField<State, 0, 8> { };
|
| - class PcField : public BitField<unsigned, 8, 32-8> { };
|
| + // Encode state and pc-offset as a BitField<type, start, size>.
|
| + // Only use 30 bits because we encode the result as a smi.
|
| + class StateField : public BitField<State, 0, 1> { };
|
| + class PcField : public BitField<unsigned, 1, 30-1> { };
|
|
|
| static const char* State2String(State state) {
|
| switch (state) {
|
|
|