Chromium Code Reviews| Index: src/ic/ic.cc |
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
| index a6ae92a892c06ac9dcc88ecf093a0201e9f0eb12..e2b99bb9f714295738c14b6139120e91abfef24c 100644 |
| --- a/src/ic/ic.cc |
| +++ b/src/ic/ic.cc |
| @@ -2568,7 +2568,7 @@ MaybeHandle<Object> BinaryOpIC::Transition( |
| // Compute the actual result using the builtin for the binary operation. |
| Object* builtin = isolate()->js_builtins_object()->javascript_builtin( |
| - TokenToJSBuiltin(state.op())); |
| + TokenToJSBuiltin(state.op(), state.language_mode())); |
| Handle<JSFunction> function = handle(JSFunction::cast(builtin), isolate()); |
| Handle<Object> result; |
| ASSIGN_RETURN_ON_EXCEPTION( |
| @@ -2805,7 +2805,8 @@ RUNTIME_FUNCTION(Unreachable) { |
| } |
| -Builtins::JavaScript BinaryOpIC::TokenToJSBuiltin(Token::Value op) { |
| +Builtins::JavaScript BinaryOpIC::TokenToJSBuiltin(Token::Value op, |
| + LanguageMode language_mode) { |
| switch (op) { |
| default: |
| UNREACHABLE(); |
| @@ -2813,16 +2814,16 @@ Builtins::JavaScript BinaryOpIC::TokenToJSBuiltin(Token::Value op) { |
| return Builtins::ADD; |
| break; |
| case Token::SUB: |
| - return Builtins::SUB; |
| + return is_strong(language_mode) ? Builtins::SUB_STRONG : Builtins::SUB; |
|
rossberg
2015/04/23 13:29:37
Nit: considering that you'll have to add the same
conradw
2015/04/23 14:51:54
Done.
|
| break; |
| case Token::MUL: |
| - return Builtins::MUL; |
| + return is_strong(language_mode) ? Builtins::MUL_STRONG : Builtins::MUL; |
| break; |
| case Token::DIV: |
| - return Builtins::DIV; |
| + return is_strong(language_mode) ? Builtins::DIV_STRONG : Builtins::DIV; |
| break; |
| case Token::MOD: |
| - return Builtins::MOD; |
| + return is_strong(language_mode) ? Builtins::MOD_STRONG : Builtins::MOD; |
| break; |
| case Token::BIT_OR: |
| return Builtins::BIT_OR; |