Open
Description
diff --git a/test/Test/Language/Javascript/StatementParser.hs b/test/Test/Language/Javascript/StatementParser.hs
index 5e0c98c..0c102d5 100644
--- a/test/Test/Language/Javascript/StatementParser.hs
+++ b/test/Test/Language/Javascript/StatementParser.hs
@@ -86,8 +86,13 @@ testStatementParser = describe "Parse statements:" $ do
it "with" $
testStmt "with (x) {};" `shouldBe` "Right (JSAstStatement (JSWith (JSIdentifier 'x') (JSStatementBlock [])))"
- it "assign" $
+ it "assign" $ do
testStmt "var z = x[i] / y;" `shouldBe` "Right (JSAstStatement (JSVariable (JSVarInitExpression (JSIdentifier 'z') [JSExpressionBinary ('/',JSMemberSquare (JSIdentifier 'x',JSIdentifier 'i'),JSIdentifier 'y')])))"
+ testStmt "var [ x ] = y;" `shouldBe` "Right (JSAstStatement (JSVariable (JSVarInitExpression (JSArrayLiteral [JSIdentifier 'x']) [JSIdentifier 'y'])))"
+ testStmt "x = y;" `shouldBe` "Right (JSAstStatement (JSOpAssign ('=',JSIdentifier 'x',JSIdentifier 'y'),JSSemicolon))"
+ testStmt "[ x ] = y;" `shouldBe` "Right (JSAstStatement (JSOpAssign ('=',JSArrayLiteral [JSIdentifier 'x'],JSIdentifier 'y'),JSSemicolon))"
+ testStmt "{ x = y; }" `shouldBe` "Right (JSAstStatement (JSStatementBlock [JSOpAssign ('=',JSIdentifier 'x',JSIdentifier 'y'),JSSemicolon]))"
+ testStmt "{ [ x ] = y; }" `shouldBe` "Right (JSAstStatement (JSStatementBlock [JSOpAssign ('=',JSArrayLiteral [JSIdentifier 'x'],JSIdentifier 'y'),JSSemicolon]))"
it "label" $
testStmt "abc:x=1" `shouldBe` "Right (JSAstStatement (JSLabelled (JSIdentifier 'abc') (JSOpAssign ('=',JSIdentifier 'x',JSDecimal '1'))))"
The last one { [ x ] = y; }
doesn't work.
Metadata
Metadata
Assignees
Labels
No labels