Fix bug in switch statement
authorLars Knoll <lars.knoll@digia.com>
Wed, 23 Jan 2013 22:11:54 +0000 (23:11 +0100)
committerSimon Hausmann <simon.hausmann@digia.com>
Thu, 24 Jan 2013 06:15:59 +0000 (07:15 +0100)
Change-Id: I42f509f825d8c095c3762a86e5da881de1038d7d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
qv4codegen.cpp
tests/TestExpectations

index 1f68255..3bc545d 100644 (file)
@@ -2313,7 +2313,7 @@ bool Codegen::visit(SwitchStatement *ast)
             Result rhs = expression(clause->expression);
             IR::BasicBlock *iftrue = blockMap[clause];
             IR::BasicBlock *iffalse = _function->newBasicBlock();
-            cjump(binop(IR::OpEqual, *lhs, *rhs), iftrue, iffalse);
+            cjump(binop(IR::OpStrictEqual, *lhs, *rhs), iftrue, iffalse);
             _block = iffalse;
         }
 
@@ -2322,7 +2322,7 @@ bool Codegen::visit(SwitchStatement *ast)
             Result rhs = expression(clause->expression);
             IR::BasicBlock *iftrue = blockMap[clause];
             IR::BasicBlock *iffalse = _function->newBasicBlock();
-            cjump(binop(IR::OpEqual, *lhs, *rhs), iftrue, iffalse);
+            cjump(binop(IR::OpStrictEqual, *lhs, *rhs), iftrue, iffalse);
             _block = iffalse;
         }
 
index 6cdedd2..fc90235 100644 (file)
@@ -6,7 +6,6 @@ S15.1.3.2_A2.5_T1
 # uses octal number
 15.2.3.6-2-17-1 failing
 
-
 # Tests failing that are supposed to pass.
 10.4.2-1-2 failing
 10.4.3-1-104 failing
@@ -139,10 +138,6 @@ S12.10_A3.4_T4 failing
 S12.10_A3.4_T5 failing
 S12.10_A3.5_T4 failing
 S12.10_A3.5_T5 failing
-S12.11_A1_T1 failing
-S12.11_A1_T2 failing
-S12.11_A1_T3 failing
-S12.11_A1_T4 failing
 12.14-13 failing
 12.10-0-3 failing
 S12.10_A1.11_T1 failing
@@ -363,18 +358,13 @@ S15.2.4.4_A14 failing
 
 # Array regressions
 S15.4.4.4_A1_T2 failing
-
-# Regressions due to Object/property refactoring
 15.4.4.18-7-c-i-6 failing
 15.4.4.19-8-c-i-6 failing
 15.4.4.20-9-c-i-6 failing
 15.4.4.22-8-b-iii-1-6 failing
-
-# Bugs in Array.prototype
 15.4.4.14-9-b-i-5 failing
 15.4.4.16-7-c-i-6 failing
 15.4.4.17-7-c-i-6 failing
-
 15.4.4.21-8-b-iii-1-6 failing
 15.12.3_4-1-1
-15.12.3_4-1-3
\ No newline at end of file
+15.12.3_4-1-3