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(); |