diff --git a/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestExpressions.java b/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestExpressions.java
index 730c2bf..b7bace3 100644
--- a/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestExpressions.java
+++ b/mschmalle/falconjx/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestExpressions.java
@@ -466,6 +466,37 @@
     // Other
     //----------------------------------
 
+    @Ignore
+    @Test
+    public void testParentheses_1()
+    {
+    	// TODO (erikdebruin/mschmalle) what happens to the parentheses?
+        IVariableNode node = (IVariableNode) getNode("var a = (a + b);",
+                IVariableNode.class);
+        visitor.visitVariable(node);
+        assertOutDebug("var a = (a + b)");
+    }
+
+    @Ignore
+    @Test
+    public void testParentheses_2()
+    {
+        IVariableNode node = (IVariableNode) getNode("var a = (a + b) - c;",
+                IVariableNode.class);
+        visitor.visitVariable(node);
+        assertOutDebug("var a = (a + b) - c");
+    }
+
+    @Ignore
+    @Test
+    public void testParentheses_3()
+    {
+        IVariableNode node = (IVariableNode) getNode("var a = ((a + b) - (c + d)) * e;",
+                IVariableNode.class);
+        visitor.visitVariable(node);
+        assertOutDebug("var a = ((a + b) - (c + d)) * e");
+    }
+
     @Test
     public void testAnonymousFunction()
     {
@@ -660,6 +691,16 @@
         assertOut("typeof(a)");
     }
 
+    @Ignore
+    @Test
+    public void testVisitUnaryOperatorNode_Typeof_NoParens()
+    {
+    	// TODO (erikdebruin/mschmalle) this notation is also valid in AS/JS
+        IUnaryOperatorNode node = getUnaryNode("typeof a");
+        visitor.visitUnaryOperator(node);
+        assertOut("typeof a");
+    }
+
     @Test
     public void testVisitUnaryOperatorNode_Void()
     {
