diff --git a/mozilla/js/js2/icodegenerator.cpp b/mozilla/js/js2/icodegenerator.cpp index fba28abc33b..ce0c25d57cd 100644 --- a/mozilla/js/js2/icodegenerator.cpp +++ b/mozilla/js/js2/icodegenerator.cpp @@ -906,7 +906,7 @@ TypedRegister ICodeGenerator::handleDot(BinaryExprNode *b, ExprNode::Kind use, I lValueKind = (isConstructor) ? Constructor : Static; } } - if ((lValueKind == Property) && (base.first == NotARegister)) + if ((lValueKind == Property) || (base.first == NotARegister)) base = loadName(baseName, base.second); } else { @@ -998,6 +998,7 @@ TypedRegister ICodeGenerator::handleDot(BinaryExprNode *b, ExprNode::Kind use, I break; case Slot: ret = slotXcr(base, slotIndex, xcrementOp); + break; default: NOT_REACHED("Bad lvalue kind"); } diff --git a/mozilla/js2/src/icodegenerator.cpp b/mozilla/js2/src/icodegenerator.cpp index fba28abc33b..ce0c25d57cd 100644 --- a/mozilla/js2/src/icodegenerator.cpp +++ b/mozilla/js2/src/icodegenerator.cpp @@ -906,7 +906,7 @@ TypedRegister ICodeGenerator::handleDot(BinaryExprNode *b, ExprNode::Kind use, I lValueKind = (isConstructor) ? Constructor : Static; } } - if ((lValueKind == Property) && (base.first == NotARegister)) + if ((lValueKind == Property) || (base.first == NotARegister)) base = loadName(baseName, base.second); } else { @@ -998,6 +998,7 @@ TypedRegister ICodeGenerator::handleDot(BinaryExprNode *b, ExprNode::Kind use, I break; case Slot: ret = slotXcr(base, slotIndex, xcrementOp); + break; default: NOT_REACHED("Bad lvalue kind"); }