| Index: src/compiler/ast-graph-builder.cc
|
| diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc
|
| index d1103d7c907b662d0092f98d9fcb80bde29ebdad..5900c7cecd9630e410d6aa3465c9bf7330c0b967 100644
|
| --- a/src/compiler/ast-graph-builder.cc
|
| +++ b/src/compiler/ast-graph-builder.cc
|
| @@ -2547,16 +2547,16 @@ void AstGraphBuilder::VisitCompareOperation(CompareOperation* expr) {
|
| op = javascript()->StrictNotEqual();
|
| break;
|
| case Token::LT:
|
| - op = javascript()->LessThan(language_mode());
|
| + op = javascript()->LessThan(strength(language_mode()));
|
| break;
|
| case Token::GT:
|
| - op = javascript()->GreaterThan(language_mode());
|
| + op = javascript()->GreaterThan(strength(language_mode()));
|
| break;
|
| case Token::LTE:
|
| - op = javascript()->LessThanOrEqual(language_mode());
|
| + op = javascript()->LessThanOrEqual(strength(language_mode()));
|
| break;
|
| case Token::GTE:
|
| - op = javascript()->GreaterThanOrEqual(language_mode());
|
| + op = javascript()->GreaterThanOrEqual(strength(language_mode()));
|
| break;
|
| case Token::INSTANCEOF:
|
| op = javascript()->InstanceOf();
|
| @@ -3414,39 +3414,40 @@ Node* AstGraphBuilder::BuildThrow(Node* exception_value) {
|
|
|
| Node* AstGraphBuilder::BuildBinaryOp(Node* left, Node* right, Token::Value op) {
|
| const Operator* js_op;
|
| + Strength op_strength = strength(language_mode());
|
| switch (op) {
|
| case Token::BIT_OR:
|
| - js_op = javascript()->BitwiseOr(language_mode());
|
| + js_op = javascript()->BitwiseOr(op_strength);
|
| break;
|
| case Token::BIT_AND:
|
| - js_op = javascript()->BitwiseAnd(language_mode());
|
| + js_op = javascript()->BitwiseAnd(op_strength);
|
| break;
|
| case Token::BIT_XOR:
|
| - js_op = javascript()->BitwiseXor(language_mode());
|
| + js_op = javascript()->BitwiseXor(op_strength);
|
| break;
|
| case Token::SHL:
|
| - js_op = javascript()->ShiftLeft(language_mode());
|
| + js_op = javascript()->ShiftLeft(op_strength);
|
| break;
|
| case Token::SAR:
|
| - js_op = javascript()->ShiftRight(language_mode());
|
| + js_op = javascript()->ShiftRight(op_strength);
|
| break;
|
| case Token::SHR:
|
| - js_op = javascript()->ShiftRightLogical(language_mode());
|
| + js_op = javascript()->ShiftRightLogical(op_strength);
|
| break;
|
| case Token::ADD:
|
| - js_op = javascript()->Add(language_mode());
|
| + js_op = javascript()->Add(op_strength);
|
| break;
|
| case Token::SUB:
|
| - js_op = javascript()->Subtract(language_mode());
|
| + js_op = javascript()->Subtract(op_strength);
|
| break;
|
| case Token::MUL:
|
| - js_op = javascript()->Multiply(language_mode());
|
| + js_op = javascript()->Multiply(op_strength);
|
| break;
|
| case Token::DIV:
|
| - js_op = javascript()->Divide(language_mode());
|
| + js_op = javascript()->Divide(op_strength);
|
| break;
|
| case Token::MOD:
|
| - js_op = javascript()->Modulus(language_mode());
|
| + js_op = javascript()->Modulus(op_strength);
|
| break;
|
| default:
|
| UNREACHABLE();
|
|
|