| Index: src/full-codegen.h
|
| ===================================================================
|
| --- src/full-codegen.h (revision 7031)
|
| +++ src/full-codegen.h (working copy)
|
| @@ -275,12 +275,6 @@
|
| ForwardBailoutStack* const parent_;
|
| };
|
|
|
| - enum ConstantOperand {
|
| - kNoConstants,
|
| - kLeftConstant,
|
| - kRightConstant
|
| - };
|
| -
|
| // Type of a member function that generates inline code for a native function.
|
| typedef void (FullCodeGenerator::*InlineFunctionGenerator)
|
| (ZoneList<Expression*>*);
|
| @@ -299,11 +293,6 @@
|
| // operation.
|
| bool ShouldInlineSmiCase(Token::Value op);
|
|
|
| - // Compute which (if any) of the operands is a compile-time constant.
|
| - ConstantOperand GetConstantOperand(Token::Value op,
|
| - Expression* left,
|
| - Expression* right);
|
| -
|
| // Helper function to convert a pure value into a test context. The value
|
| // is expected on the stack or the accumulator, depending on the platform.
|
| // See the platform-specific implementation for details.
|
| @@ -433,6 +422,14 @@
|
| Label* done);
|
| void EmitVariableLoad(Variable* expr);
|
|
|
| + enum ResolveEvalFlag {
|
| + SKIP_CONTEXT_LOOKUP,
|
| + PERFORM_CONTEXT_LOOKUP
|
| + };
|
| +
|
| + // Expects the arguments and the function already pushed.
|
| + void EmitResolvePossiblyDirectEval(ResolveEvalFlag flag, int arg_count);
|
| +
|
| // Platform-specific support for allocating a new closure based on
|
| // the given function info.
|
| void EmitNewClosure(Handle<SharedFunctionInfo> info, bool pretenure);
|
| @@ -458,35 +455,8 @@
|
| Token::Value op,
|
| OverwriteMode mode,
|
| Expression* left,
|
| - Expression* right,
|
| - ConstantOperand constant);
|
| + Expression* right);
|
|
|
| - void EmitConstantSmiBinaryOp(Expression* expr,
|
| - Token::Value op,
|
| - OverwriteMode mode,
|
| - bool left_is_constant_smi,
|
| - Smi* value);
|
| -
|
| - void EmitConstantSmiBitOp(Expression* expr,
|
| - Token::Value op,
|
| - OverwriteMode mode,
|
| - Smi* value);
|
| -
|
| - void EmitConstantSmiShiftOp(Expression* expr,
|
| - Token::Value op,
|
| - OverwriteMode mode,
|
| - Smi* value);
|
| -
|
| - void EmitConstantSmiAdd(Expression* expr,
|
| - OverwriteMode mode,
|
| - bool left_is_constant_smi,
|
| - Smi* value);
|
| -
|
| - void EmitConstantSmiSub(Expression* expr,
|
| - OverwriteMode mode,
|
| - bool left_is_constant_smi,
|
| - Smi* value);
|
| -
|
| // Assign to the given expression as if via '='. The right-hand-side value
|
| // is expected in the accumulator.
|
| void EmitAssignment(Expression* expr, int bailout_ast_id);
|
| @@ -533,8 +503,9 @@
|
|
|
| Handle<Script> script() { return info_->script(); }
|
| bool is_eval() { return info_->is_eval(); }
|
| + bool is_strict() { return function()->strict_mode(); }
|
| StrictModeFlag strict_mode_flag() {
|
| - return function()->strict_mode() ? kStrictMode : kNonStrictMode;
|
| + return is_strict() ? kStrictMode : kNonStrictMode;
|
| }
|
| FunctionLiteral* function() { return info_->function(); }
|
| Scope* scope() { return info_->scope(); }
|
| @@ -546,7 +517,8 @@
|
| void EmitCallIC(Handle<Code> ic, RelocInfo::Mode mode);
|
|
|
| // Calling an IC stub with a patch site. Passing NULL for patch_site
|
| - // indicates no inlined smi code and emits a nop after the IC call.
|
| + // or non NULL patch_site which is not activated indicates no inlined smi code
|
| + // and emits a nop after the IC call.
|
| void EmitCallIC(Handle<Code> ic, JumpPatchSite* patch_site);
|
|
|
| // Set fields in the stack frame. Offsets are the frame pointer relative
|
|
|