nashorn/test/script/nosecurity/parserapi.js.EXPECTED
changeset 29407 3fd4ede1581e
child 29536 805894cd3c6b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/test/script/nosecurity/parserapi.js.EXPECTED	Mon Mar 09 20:14:10 2015 +0530
@@ -0,0 +1,7015 @@
+[
+{
+  "endPosition": "1113",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1123",
+      "kind": "VARIABLE",
+      "name": "x",
+      "startPosition": "1117",
+      "initializer": {
+        "endPosition": "1123",
+        "kind": "ARRAY_LITERAL",
+        "elements": [],
+        "startPosition": "1121"
+      }
+    },
+    {
+      "endPosition": "1147",
+      "kind": "VARIABLE",
+      "name": "y",
+      "startPosition": "1129",
+      "initializer": {
+        "endPosition": "1147",
+        "kind": "ARRAY_LITERAL",
+        "elements": [
+          {
+            "endPosition": "1135",
+            "kind": "NUMBER_LITERAL",
+            "value": "1",
+            "startPosition": "1134"
+          },
+          {
+            "endPosition": "1139",
+            "kind": "NUMBER_LITERAL",
+            "value": "43",
+            "startPosition": "1137"
+          },
+          {
+            "endPosition": "1142",
+            "kind": "NUMBER_LITERAL",
+            "value": "5",
+            "startPosition": "1141"
+          },
+          {
+            "endPosition": "1146",
+            "kind": "NUMBER_LITERAL",
+            "value": "45",
+            "startPosition": "1144"
+          }
+        ],
+        "startPosition": "1133"
+      }
+    },
+    {
+      "endPosition": "1165",
+      "kind": "VARIABLE",
+      "name": "z",
+      "startPosition": "1153",
+      "initializer": {
+        "endPosition": "1165",
+        "kind": "ARRAY_LITERAL",
+        "elements": [
+          {
+            "endPosition": "1160",
+            "kind": "NUMBER_LITERAL",
+            "value": "34",
+            "startPosition": "1158"
+          },
+          null,
+          null,
+          {
+            "endPosition": "1164",
+            "kind": "NUMBER_LITERAL",
+            "value": "4",
+            "startPosition": "1163"
+          }
+        ],
+        "startPosition": "1157"
+      }
+    },
+    {
+      "endPosition": "1200",
+      "kind": "VARIABLE",
+      "name": "k",
+      "startPosition": "1171",
+      "initializer": {
+        "endPosition": "1200",
+        "kind": "ARRAY_LITERAL",
+        "elements": [
+          {
+            "endPosition": "1179",
+            "kind": "OBJECT_LITERAL",
+            "startPosition": "1177",
+            "properties": []
+          },
+          {
+            "endPosition": "1189",
+            "kind": "OBJECT_LITERAL",
+            "startPosition": "1181",
+            "properties": [
+              {
+                "endPosition": "1185",
+                "kind": "PROPERTY",
+                "value": {
+                  "endPosition": "1187",
+                  "kind": "NUMBER_LITERAL",
+                  "value": "3",
+                  "startPosition": "1186"
+                },
+                "startPosition": "1183",
+                "key": {
+                  "endPosition": "1184",
+                  "kind": "IDENTIFIER",
+                  "name": "x",
+                  "startPosition": "1183"
+                }
+              }
+            ]
+          },
+          {
+            "endPosition": "1197",
+            "kind": "STRING_LITERAL",
+            "value": "hello",
+            "startPosition": "1192"
+          }
+        ],
+        "startPosition": "1175"
+      }
+    }
+  ],
+  "sourceName": "parsertests/array_literal.js",
+  "strict": "false",
+  "startPosition": "1113"
+}
+,
+{
+  "endPosition": "1126",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1135",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1132"
+        },
+        "endPosition": "1135",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "endPosition": "1129",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1126"
+        },
+        "startPosition": "1126"
+      },
+      "endPosition": "1135",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1126"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1147",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1144"
+        },
+        "endPosition": "1147",
+        "kind": "PLUS_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1140",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1137"
+        },
+        "startPosition": "1137"
+      },
+      "endPosition": "1147",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1137"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1159",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1156"
+        },
+        "endPosition": "1159",
+        "kind": "MINUS_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1152",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1149"
+        },
+        "startPosition": "1149"
+      },
+      "endPosition": "1159",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1149"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1171",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1168"
+        },
+        "endPosition": "1171",
+        "kind": "MULTIPLY_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1164",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1161"
+        },
+        "startPosition": "1161"
+      },
+      "endPosition": "1171",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1161"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1183",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1180"
+        },
+        "endPosition": "1183",
+        "kind": "DIVIDE_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1176",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1173"
+        },
+        "startPosition": "1173"
+      },
+      "endPosition": "1183",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1173"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1195",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1192"
+        },
+        "endPosition": "1195",
+        "kind": "REMAINDER_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1188",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1185"
+        },
+        "startPosition": "1185"
+      },
+      "endPosition": "1195",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1185"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1208",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1205"
+        },
+        "endPosition": "1208",
+        "kind": "LEFT_SHIFT_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1200",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1197"
+        },
+        "startPosition": "1197"
+      },
+      "endPosition": "1208",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1197"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1221",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1218"
+        },
+        "endPosition": "1221",
+        "kind": "RIGHT_SHIFT_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1213",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1210"
+        },
+        "startPosition": "1210"
+      },
+      "endPosition": "1221",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1210"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1235",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1232"
+        },
+        "endPosition": "1235",
+        "kind": "UNSIGNED_RIGHT_SHIFT_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1226",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1223"
+        },
+        "startPosition": "1223"
+      },
+      "endPosition": "1235",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1223"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1247",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1244"
+        },
+        "endPosition": "1247",
+        "kind": "AND_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1240",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1237"
+        },
+        "startPosition": "1237"
+      },
+      "endPosition": "1247",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1237"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1259",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1256"
+        },
+        "endPosition": "1259",
+        "kind": "XOR_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1252",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1249"
+        },
+        "startPosition": "1249"
+      },
+      "endPosition": "1259",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1249"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1271",
+          "kind": "NUMBER_LITERAL",
+          "value": "314",
+          "startPosition": "1268"
+        },
+        "endPosition": "1271",
+        "kind": "OR_ASSIGNMENT",
+        "variable": {
+          "endPosition": "1264",
+          "kind": "IDENTIFIER",
+          "name": "xyz",
+          "startPosition": "1261"
+        },
+        "startPosition": "1261"
+      },
+      "endPosition": "1271",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1261"
+    }
+  ],
+  "sourceName": "parsertests/assignmentExpr.js",
+  "strict": "false",
+  "startPosition": "1126"
+}
+,
+{
+  "endPosition": "1116",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1117",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1116"
+        },
+        "endPosition": "1121",
+        "kind": "MULTIPLY",
+        "rightOperand": {
+          "endPosition": "1121",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1120"
+        },
+        "startPosition": "1116"
+      },
+      "endPosition": "1121",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1116"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1123",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1122"
+        },
+        "endPosition": "1127",
+        "kind": "DIVIDE",
+        "rightOperand": {
+          "endPosition": "1127",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1126"
+        },
+        "startPosition": "1122"
+      },
+      "endPosition": "1127",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1122"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1130",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1129"
+        },
+        "endPosition": "1134",
+        "kind": "REMAINDER",
+        "rightOperand": {
+          "endPosition": "1134",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1133"
+        },
+        "startPosition": "1129"
+      },
+      "endPosition": "1134",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1129"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1137",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1136"
+        },
+        "endPosition": "1141",
+        "kind": "PLUS",
+        "rightOperand": {
+          "endPosition": "1141",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1140"
+        },
+        "startPosition": "1136"
+      },
+      "endPosition": "1141",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1136"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1144",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1143"
+        },
+        "endPosition": "1148",
+        "kind": "MINUS",
+        "rightOperand": {
+          "endPosition": "1148",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1147"
+        },
+        "startPosition": "1143"
+      },
+      "endPosition": "1148",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1143"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1151",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1150"
+        },
+        "endPosition": "1156",
+        "kind": "LEFT_SHIFT",
+        "rightOperand": {
+          "endPosition": "1156",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1155"
+        },
+        "startPosition": "1150"
+      },
+      "endPosition": "1156",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1150"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1159",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1158"
+        },
+        "endPosition": "1164",
+        "kind": "RIGHT_SHIFT",
+        "rightOperand": {
+          "endPosition": "1164",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1163"
+        },
+        "startPosition": "1158"
+      },
+      "endPosition": "1164",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1158"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1167",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1166"
+        },
+        "endPosition": "1173",
+        "kind": "UNSIGNED_RIGHT_SHIFT",
+        "rightOperand": {
+          "endPosition": "1173",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1172"
+        },
+        "startPosition": "1166"
+      },
+      "endPosition": "1173",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1166"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1176",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1175"
+        },
+        "endPosition": "1180",
+        "kind": "LESS_THAN",
+        "rightOperand": {
+          "endPosition": "1180",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1179"
+        },
+        "startPosition": "1175"
+      },
+      "endPosition": "1180",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1175"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1183",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1182"
+        },
+        "endPosition": "1187",
+        "kind": "GREATER_THAN",
+        "rightOperand": {
+          "endPosition": "1187",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1186"
+        },
+        "startPosition": "1182"
+      },
+      "endPosition": "1187",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1182"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1190",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1189"
+        },
+        "endPosition": "1195",
+        "kind": "LESS_THAN_EQUAL",
+        "rightOperand": {
+          "endPosition": "1195",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1194"
+        },
+        "startPosition": "1189"
+      },
+      "endPosition": "1195",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1189"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1198",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1197"
+        },
+        "endPosition": "1203",
+        "kind": "GREATER_THAN_EQUAL",
+        "rightOperand": {
+          "endPosition": "1203",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1202"
+        },
+        "startPosition": "1197"
+      },
+      "endPosition": "1203",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1197"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1206",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1205"
+        },
+        "expression": {
+          "endPosition": "1206",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1205"
+        },
+        "endPosition": "1219",
+        "kind": "INSTANCE_OF",
+        "rightOperand": {
+          "endPosition": "1219",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1218"
+        },
+        "type": {
+          "endPosition": "1219",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1218"
+        },
+        "startPosition": "1205"
+      },
+      "endPosition": "1219",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1205"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1222",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1221"
+        },
+        "endPosition": "1227",
+        "kind": "EQUAL_TO",
+        "rightOperand": {
+          "endPosition": "1227",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1226"
+        },
+        "startPosition": "1221"
+      },
+      "endPosition": "1227",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1221"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1230",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1229"
+        },
+        "endPosition": "1235",
+        "kind": "NOT_EQUAL_TO",
+        "rightOperand": {
+          "endPosition": "1235",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1234"
+        },
+        "startPosition": "1229"
+      },
+      "endPosition": "1235",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1229"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1238",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1237"
+        },
+        "endPosition": "1244",
+        "kind": "STRICT_EQUAL_TO",
+        "rightOperand": {
+          "endPosition": "1244",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1243"
+        },
+        "startPosition": "1237"
+      },
+      "endPosition": "1244",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1237"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1247",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1246"
+        },
+        "endPosition": "1253",
+        "kind": "STRICT_NOT_EQUAL_TO",
+        "rightOperand": {
+          "endPosition": "1253",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1252"
+        },
+        "startPosition": "1246"
+      },
+      "endPosition": "1253",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1246"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1256",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1255"
+        },
+        "endPosition": "1260",
+        "kind": "AND",
+        "rightOperand": {
+          "endPosition": "1260",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1259"
+        },
+        "startPosition": "1255"
+      },
+      "endPosition": "1260",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1255"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1263",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1262"
+        },
+        "endPosition": "1267",
+        "kind": "XOR",
+        "rightOperand": {
+          "endPosition": "1267",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1266"
+        },
+        "startPosition": "1262"
+      },
+      "endPosition": "1267",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1262"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1270",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1269"
+        },
+        "endPosition": "1274",
+        "kind": "OR",
+        "rightOperand": {
+          "endPosition": "1274",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1273"
+        },
+        "startPosition": "1269"
+      },
+      "endPosition": "1274",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1269"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1277",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1276"
+        },
+        "endPosition": "1282",
+        "kind": "CONDITIONAL_AND",
+        "rightOperand": {
+          "endPosition": "1282",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1281"
+        },
+        "startPosition": "1276"
+      },
+      "endPosition": "1282",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1276"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1285",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1284"
+        },
+        "endPosition": "1290",
+        "kind": "CONDITIONAL_OR",
+        "rightOperand": {
+          "endPosition": "1290",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1289"
+        },
+        "startPosition": "1284"
+      },
+      "endPosition": "1290",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1284"
+    }
+  ],
+  "sourceName": "parsertests/binaryExpr.js",
+  "strict": "false",
+  "startPosition": "1116"
+}
+,
+{
+  "endPosition": "1117",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1119",
+      "kind": "BLOCK",
+      "statements": [],
+      "startPosition": "1117"
+    },
+    {
+      "endPosition": "1139",
+      "kind": "BLOCK",
+      "statements": [
+        {
+          "expression": {
+            "endPosition": "1136",
+            "kind": "FUNCTION_INVOCATION",
+            "functionSelect": {
+              "endPosition": "1127",
+              "kind": "IDENTIFIER",
+              "name": "print",
+              "startPosition": "1122"
+            },
+            "arguments": [
+              {
+                "endPosition": "1134",
+                "kind": "STRING_LITERAL",
+                "value": "hello",
+                "startPosition": "1129"
+              }
+            ],
+            "startPosition": "1122"
+          },
+          "endPosition": "1136",
+          "kind": "EXPRESSION_STATEMENT",
+          "startPosition": "1122"
+        }
+      ],
+      "startPosition": "1120"
+    }
+  ],
+  "sourceName": "parsertests/block.js",
+  "strict": "false",
+  "startPosition": "1117"
+}
+,
+{
+  "endPosition": "1117",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "condition": {
+        "endPosition": "1128",
+        "kind": "BOOLEAN_LITERAL",
+        "value": "true",
+        "startPosition": "1124"
+      },
+      "endPosition": "1140",
+      "kind": "WHILE_LOOP",
+      "statement": {
+        "endPosition": "1140",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "endPosition": "1138",
+            "kind": "BREAK",
+            "startPosition": "1132"
+          }
+        ],
+        "startPosition": "1130"
+      },
+      "startPosition": "1117"
+    },
+    {
+      "endPosition": "1179",
+      "kind": "LABELED_STATEMENT",
+      "statement": {
+        "endPosition": "1179",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "condition": {
+              "endPosition": "1161",
+              "kind": "BOOLEAN_LITERAL",
+              "value": "true",
+              "startPosition": "1157"
+            },
+            "endPosition": "1177",
+            "kind": "WHILE_LOOP",
+            "statement": {
+              "endPosition": "1177",
+              "kind": "BLOCK",
+              "statements": [
+                {
+                  "endPosition": "1175",
+                  "kind": "BREAK",
+                  "label": "loop",
+                  "startPosition": "1165"
+                }
+              ],
+              "startPosition": "1163"
+            },
+            "startPosition": "1150"
+          }
+        ],
+        "startPosition": "1148"
+      },
+      "label": "loop",
+      "startPosition": "1142"
+    },
+    {
+      "endPosition": "1214",
+      "kind": "LABELED_STATEMENT",
+      "statement": {
+        "endPosition": "1214",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "endPosition": "1212",
+            "kind": "FOR_LOOP",
+            "statement": {
+              "endPosition": "1212",
+              "kind": "BLOCK",
+              "statements": [
+                {
+                  "endPosition": "1210",
+                  "kind": "BREAK",
+                  "label": "loop",
+                  "startPosition": "1200"
+                }
+              ],
+              "startPosition": "1198"
+            },
+            "startPosition": "1189"
+          }
+        ],
+        "startPosition": "1187"
+      },
+      "label": "loop",
+      "startPosition": "1181"
+    }
+  ],
+  "sourceName": "parsertests/breakStat.js",
+  "strict": "false",
+  "startPosition": "1117"
+}
+,
+{
+  "endPosition": "1117",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "condition": {
+          "endPosition": "1118",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1117"
+        },
+        "endPosition": "1125",
+        "kind": "CONDITIONAL_EXPRESSION",
+        "trueExpression": {
+          "endPosition": "1121",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1120"
+        },
+        "falseExpression": {
+          "endPosition": "1125",
+          "kind": "IDENTIFIER",
+          "name": "c",
+          "startPosition": "1124"
+        },
+        "startPosition": "1118"
+      },
+      "endPosition": "1125",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1117"
+    }
+  ],
+  "sourceName": "parsertests/condExpr.js",
+  "strict": "false",
+  "startPosition": "1117"
+}
+,
+{
+  "endPosition": "1120",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "condition": {
+        "endPosition": "1131",
+        "kind": "BOOLEAN_LITERAL",
+        "value": "true",
+        "startPosition": "1127"
+      },
+      "endPosition": "1146",
+      "kind": "WHILE_LOOP",
+      "statement": {
+        "endPosition": "1146",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "endPosition": "1144",
+            "kind": "CONTINUE",
+            "startPosition": "1135"
+          }
+        ],
+        "startPosition": "1133"
+      },
+      "startPosition": "1120"
+    },
+    {
+      "endPosition": "1191",
+      "kind": "LABELED_STATEMENT",
+      "statement": {
+        "endPosition": "1191",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "condition": {
+              "endPosition": "1168",
+              "kind": "BOOLEAN_LITERAL",
+              "value": "true",
+              "startPosition": "1164"
+            },
+            "endPosition": "1189",
+            "kind": "WHILE_LOOP",
+            "statement": {
+              "endPosition": "1189",
+              "kind": "BLOCK",
+              "statements": [
+                {
+                  "endPosition": "1187",
+                  "kind": "CONTINUE",
+                  "label": "begin",
+                  "startPosition": "1172"
+                }
+              ],
+              "startPosition": "1170"
+            },
+            "startPosition": "1157"
+          }
+        ],
+        "startPosition": "1155"
+      },
+      "label": "begin",
+      "startPosition": "1148"
+    },
+    {
+      "endPosition": "1231",
+      "kind": "LABELED_STATEMENT",
+      "statement": {
+        "endPosition": "1231",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "endPosition": "1229",
+            "kind": "FOR_LOOP",
+            "statement": {
+              "endPosition": "1229",
+              "kind": "BLOCK",
+              "statements": [
+                {
+                  "endPosition": "1227",
+                  "kind": "CONTINUE",
+                  "label": "start",
+                  "startPosition": "1212"
+                }
+              ],
+              "startPosition": "1210"
+            },
+            "startPosition": "1202"
+          }
+        ],
+        "startPosition": "1200"
+      },
+      "label": "start",
+      "startPosition": "1193"
+    }
+  ],
+  "sourceName": "parsertests/continueStat.js",
+  "strict": "false",
+  "startPosition": "1120"
+}
+,
+{
+  "endPosition": "1118",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1127",
+      "kind": "DEBUGGER",
+      "startPosition": "1118"
+    }
+  ],
+  "sourceName": "parsertests/debuggerStat.js",
+  "strict": "false",
+  "startPosition": "1118"
+}
+,
+{
+  "endPosition": "1137",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1172",
+      "kind": "FUNCTION",
+      "name": "hello",
+      "body": {
+        "endPosition": "1170",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1170",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1161",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "1156"
+              },
+              "arguments": [
+                {
+                  "endPosition": "1168",
+                  "kind": "STRING_LITERAL",
+                  "value": "hello",
+                  "startPosition": "1163"
+                }
+              ],
+              "startPosition": "1156"
+            },
+            "endPosition": "1170",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1156"
+          }
+        ],
+        "startPosition": "1154"
+      },
+      "strict": "false",
+      "startPosition": "1137",
+      "parameters": []
+    },
+    {
+      "endPosition": "1203",
+      "kind": "FUNCTION",
+      "name": "hello",
+      "body": {
+        "endPosition": "1201",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1201",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1198",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "1193"
+              },
+              "arguments": [
+                {
+                  "endPosition": "1200",
+                  "kind": "IDENTIFIER",
+                  "name": "a",
+                  "startPosition": "1199"
+                }
+              ],
+              "startPosition": "1193"
+            },
+            "endPosition": "1201",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1193"
+          }
+        ],
+        "startPosition": "1191"
+      },
+      "strict": "false",
+      "startPosition": "1173",
+      "parameters": [
+        {
+          "endPosition": "1189",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1188"
+        }
+      ]
+    },
+    {
+      "endPosition": "1240",
+      "kind": "FUNCTION",
+      "name": "hello",
+      "body": {
+        "endPosition": "1238",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1238",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1232",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "1227"
+              },
+              "arguments": [
+                {
+                  "endPosition": "1234",
+                  "kind": "IDENTIFIER",
+                  "name": "a",
+                  "startPosition": "1233"
+                },
+                {
+                  "endPosition": "1237",
+                  "kind": "IDENTIFIER",
+                  "name": "b",
+                  "startPosition": "1236"
+                }
+              ],
+              "startPosition": "1227"
+            },
+            "endPosition": "1238",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1227"
+          }
+        ],
+        "startPosition": "1225"
+      },
+      "strict": "false",
+      "startPosition": "1204",
+      "parameters": [
+        {
+          "endPosition": "1220",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1219"
+        },
+        {
+          "endPosition": "1223",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1222"
+        }
+      ]
+    },
+    {
+      "endPosition": "1380",
+      "kind": "FUNCTION",
+      "name": "test",
+      "body": {
+        "endPosition": "1377",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1377",
+              "kind": "STRING_LITERAL",
+              "value": "use strict",
+              "startPosition": "1367"
+            },
+            "endPosition": "1377",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1367"
+          }
+        ],
+        "startPosition": "1364"
+      },
+      "strict": "true",
+      "startPosition": "1348",
+      "parameters": []
+    },
+    {
+      "endPosition": "1282",
+      "kind": "VARIABLE",
+      "name": "hello",
+      "startPosition": "1245",
+      "initializer": {
+        "endPosition": "1264",
+        "kind": "FUNCTION_EXPRESSION",
+        "body": {
+          "endPosition": "1280",
+          "kind": "BLOCK",
+          "statements": [
+            {
+              "expression": {
+                "endPosition": "1280",
+                "kind": "FUNCTION_INVOCATION",
+                "functionSelect": {
+                  "endPosition": "1271",
+                  "kind": "IDENTIFIER",
+                  "name": "print",
+                  "startPosition": "1266"
+                },
+                "arguments": [
+                  {
+                    "endPosition": "1278",
+                    "kind": "STRING_LITERAL",
+                    "value": "hello",
+                    "startPosition": "1273"
+                  }
+                ],
+                "startPosition": "1266"
+              },
+              "endPosition": "1280",
+              "kind": "EXPRESSION_STATEMENT",
+              "startPosition": "1266"
+            }
+          ],
+          "startPosition": "1264"
+        },
+        "strict": "false",
+        "startPosition": "1264",
+        "parameters": []
+      }
+    },
+    {
+      "endPosition": "1331",
+      "kind": "VARIABLE",
+      "name": "hello",
+      "startPosition": "1288",
+      "initializer": {
+        "endPosition": "1313",
+        "kind": "FUNCTION_EXPRESSION",
+        "name": "hello",
+        "body": {
+          "endPosition": "1329",
+          "kind": "BLOCK",
+          "statements": [
+            {
+              "expression": {
+                "endPosition": "1329",
+                "kind": "FUNCTION_INVOCATION",
+                "functionSelect": {
+                  "endPosition": "1320",
+                  "kind": "IDENTIFIER",
+                  "name": "print",
+                  "startPosition": "1315"
+                },
+                "arguments": [
+                  {
+                    "endPosition": "1327",
+                    "kind": "STRING_LITERAL",
+                    "value": "hello",
+                    "startPosition": "1322"
+                  }
+                ],
+                "startPosition": "1315"
+              },
+              "endPosition": "1329",
+              "kind": "EXPRESSION_STATEMENT",
+              "startPosition": "1315"
+            }
+          ],
+          "startPosition": "1313"
+        },
+        "strict": "false",
+        "startPosition": "1313",
+        "parameters": []
+      }
+    },
+    {
+      "expression": {
+        "endPosition": "1344",
+        "kind": "FUNCTION_EXPRESSION",
+        "body": {
+          "endPosition": "1345",
+          "kind": "BLOCK",
+          "statements": [],
+          "startPosition": "1344"
+        },
+        "strict": "false",
+        "startPosition": "1344",
+        "parameters": []
+      },
+      "endPosition": "1347",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1333"
+    }
+  ],
+  "sourceName": "parsertests/functions.js",
+  "strict": "false",
+  "startPosition": "1137"
+}
+,
+{
+  "endPosition": "1114",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "condition": {
+        "endPosition": "1120",
+        "kind": "IDENTIFIER",
+        "name": "js",
+        "startPosition": "1118"
+      },
+      "endPosition": "1135",
+      "kind": "IF",
+      "startPosition": "1114",
+      "thenStatement": {
+        "endPosition": "1135",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1133",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1131",
+                "kind": "IDENTIFIER",
+                "name": "nashorn",
+                "startPosition": "1124"
+              },
+              "arguments": [],
+              "startPosition": "1124"
+            },
+            "endPosition": "1133",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1124"
+          }
+        ],
+        "startPosition": "1122"
+      }
+    },
+    {
+      "condition": {
+        "endPosition": "1143",
+        "kind": "IDENTIFIER",
+        "name": "js",
+        "startPosition": "1141"
+      },
+      "elseStatement": {
+        "endPosition": "1174",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1172",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1170",
+                "kind": "IDENTIFIER",
+                "name": "java",
+                "startPosition": "1166"
+              },
+              "arguments": [],
+              "startPosition": "1166"
+            },
+            "endPosition": "1172",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1166"
+          }
+        ],
+        "startPosition": "1164"
+      },
+      "endPosition": "1174",
+      "kind": "IF",
+      "startPosition": "1137",
+      "thenStatement": {
+        "endPosition": "1158",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1156",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1154",
+                "kind": "IDENTIFIER",
+                "name": "nashorn",
+                "startPosition": "1147"
+              },
+              "arguments": [],
+              "startPosition": "1147"
+            },
+            "endPosition": "1156",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1147"
+          }
+        ],
+        "startPosition": "1145"
+      }
+    }
+  ],
+  "sourceName": "parsertests/ifStat.js",
+  "strict": "false",
+  "startPosition": "1114"
+}
+,
+{
+  "endPosition": "1113",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1144",
+      "kind": "LABELED_STATEMENT",
+      "statement": {
+        "endPosition": "1144",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "endPosition": "1142",
+            "kind": "FOR_LOOP",
+            "statement": {
+              "endPosition": "1142",
+              "kind": "BREAK",
+              "label": "begin",
+              "startPosition": "1131"
+            },
+            "startPosition": "1122"
+          }
+        ],
+        "startPosition": "1120"
+      },
+      "label": "begin",
+      "startPosition": "1113"
+    },
+    {
+      "endPosition": "1181",
+      "kind": "LABELED_STATEMENT",
+      "statement": {
+        "endPosition": "1181",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "condition": {
+              "endPosition": "1166",
+              "kind": "BOOLEAN_LITERAL",
+              "value": "true",
+              "startPosition": "1162"
+            },
+            "endPosition": "1179",
+            "kind": "WHILE_LOOP",
+            "statement": {
+              "endPosition": "1179",
+              "kind": "BREAK",
+              "label": "begin",
+              "startPosition": "1168"
+            },
+            "startPosition": "1155"
+          }
+        ],
+        "startPosition": "1153"
+      },
+      "label": "begin",
+      "startPosition": "1146"
+    }
+  ],
+  "sourceName": "parsertests/labelledStat.js",
+  "strict": "false",
+  "startPosition": "1113"
+}
+,
+{
+  "endPosition": "1125",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1126",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1125"
+        },
+        "endPosition": "1129",
+        "kind": "ARRAY_ACCESS",
+        "index": {
+          "endPosition": "1128",
+          "kind": "NUMBER_LITERAL",
+          "value": "3",
+          "startPosition": "1127"
+        },
+        "startPosition": "1125"
+      },
+      "endPosition": "1129",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1125"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1132",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1131"
+        },
+        "endPosition": "1135",
+        "kind": "ARRAY_ACCESS",
+        "index": {
+          "endPosition": "1134",
+          "kind": "IDENTIFIER",
+          "name": "b",
+          "startPosition": "1133"
+        },
+        "startPosition": "1131"
+      },
+      "endPosition": "1135",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1131"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1138",
+          "kind": "IDENTIFIER",
+          "name": "a",
+          "startPosition": "1137"
+        },
+        "endPosition": "1145",
+        "kind": "ARRAY_ACCESS",
+        "index": {
+          "endPosition": "1143",
+          "kind": "STRING_LITERAL",
+          "value": "foo",
+          "startPosition": "1140"
+        },
+        "startPosition": "1137"
+      },
+      "endPosition": "1145",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1137"
+    },
+    {
+      "expression": {
+        "identifier": "foo",
+        "expression": {
+          "endPosition": "1150",
+          "kind": "IDENTIFIER",
+          "name": "obj",
+          "startPosition": "1147"
+        },
+        "endPosition": "1154",
+        "kind": "MEMBER_SELECT",
+        "startPosition": "1147"
+      },
+      "endPosition": "1154",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1147"
+    },
+    {
+      "expression": {
+        "identifier": "bar",
+        "expression": {
+          "identifier": "foo",
+          "expression": {
+            "endPosition": "1159",
+            "kind": "IDENTIFIER",
+            "name": "obj",
+            "startPosition": "1156"
+          },
+          "endPosition": "1163",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1156"
+        },
+        "endPosition": "1167",
+        "kind": "MEMBER_SELECT",
+        "startPosition": "1156"
+      },
+      "endPosition": "1167",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1156"
+    },
+    {
+      "expression": {
+        "constructorExpression": {
+          "endPosition": "1177",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "endPosition": "1177",
+            "kind": "IDENTIFIER",
+            "name": "Type",
+            "startPosition": "1173"
+          },
+          "arguments": [],
+          "startPosition": "1173"
+        },
+        "endPosition": "1177",
+        "kind": "NEW",
+        "startPosition": "1169"
+      },
+      "endPosition": "1177",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1169"
+    },
+    {
+      "expression": {
+        "constructorExpression": {
+          "endPosition": "1189",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "endPosition": "1187",
+            "kind": "IDENTIFIER",
+            "name": "Type",
+            "startPosition": "1183"
+          },
+          "arguments": [],
+          "startPosition": "1183"
+        },
+        "endPosition": "1189",
+        "kind": "NEW",
+        "startPosition": "1179"
+      },
+      "endPosition": "1189",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1179"
+    },
+    {
+      "expression": {
+        "constructorExpression": {
+          "endPosition": "1211",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "endPosition": "1199",
+            "kind": "IDENTIFIER",
+            "name": "Type",
+            "startPosition": "1195"
+          },
+          "arguments": [
+            {
+              "endPosition": "1201",
+              "kind": "IDENTIFIER",
+              "name": "a",
+              "startPosition": "1200"
+            },
+            {
+              "endPosition": "1209",
+              "kind": "STRING_LITERAL",
+              "value": "hello",
+              "startPosition": "1204"
+            }
+          ],
+          "startPosition": "1195"
+        },
+        "endPosition": "1211",
+        "kind": "NEW",
+        "startPosition": "1191"
+      },
+      "endPosition": "1211",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1191"
+    },
+    {
+      "expression": {
+        "constructorExpression": {
+          "endPosition": "1225",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "identifier": "Type",
+            "expression": {
+              "endPosition": "1220",
+              "kind": "IDENTIFIER",
+              "name": "obj",
+              "startPosition": "1217"
+            },
+            "endPosition": "1225",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1217"
+          },
+          "arguments": [],
+          "startPosition": "1220"
+        },
+        "endPosition": "1225",
+        "kind": "NEW",
+        "startPosition": "1213"
+      },
+      "endPosition": "1225",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1213"
+    },
+    {
+      "expression": {
+        "constructorExpression": {
+          "endPosition": "1241",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "identifier": "Type",
+            "expression": {
+              "endPosition": "1234",
+              "kind": "IDENTIFIER",
+              "name": "obj",
+              "startPosition": "1231"
+            },
+            "endPosition": "1239",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1231"
+          },
+          "arguments": [],
+          "startPosition": "1234"
+        },
+        "endPosition": "1241",
+        "kind": "NEW",
+        "startPosition": "1227"
+      },
+      "endPosition": "1241",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1227"
+    },
+    {
+      "expression": {
+        "constructorExpression": {
+          "endPosition": "1267",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "identifier": "Type",
+            "expression": {
+              "endPosition": "1250",
+              "kind": "IDENTIFIER",
+              "name": "obj",
+              "startPosition": "1247"
+            },
+            "endPosition": "1255",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1247"
+          },
+          "arguments": [
+            {
+              "endPosition": "1257",
+              "kind": "IDENTIFIER",
+              "name": "a",
+              "startPosition": "1256"
+            },
+            {
+              "endPosition": "1265",
+              "kind": "STRING_LITERAL",
+              "value": "hello",
+              "startPosition": "1260"
+            }
+          ],
+          "startPosition": "1250"
+        },
+        "endPosition": "1267",
+        "kind": "NEW",
+        "startPosition": "1243"
+      },
+      "endPosition": "1267",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1243"
+    },
+    {
+      "expression": {
+        "endPosition": "1274",
+        "kind": "FUNCTION_INVOCATION",
+        "functionSelect": {
+          "endPosition": "1272",
+          "kind": "IDENTIFIER",
+          "name": "foo",
+          "startPosition": "1269"
+        },
+        "arguments": [],
+        "startPosition": "1269"
+      },
+      "endPosition": "1274",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1269"
+    },
+    {
+      "expression": {
+        "endPosition": "1284",
+        "kind": "FUNCTION_INVOCATION",
+        "functionSelect": {
+          "identifier": "foo",
+          "expression": {
+            "endPosition": "1278",
+            "kind": "IDENTIFIER",
+            "name": "obj",
+            "startPosition": "1275"
+          },
+          "endPosition": "1282",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1275"
+        },
+        "arguments": [],
+        "startPosition": "1275"
+      },
+      "endPosition": "1284",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1275"
+    },
+    {
+      "expression": {
+        "endPosition": "1294",
+        "kind": "FUNCTION_INVOCATION",
+        "functionSelect": {
+          "endPosition": "1289",
+          "kind": "IDENTIFIER",
+          "name": "foo",
+          "startPosition": "1286"
+        },
+        "arguments": [
+          {
+            "endPosition": "1291",
+            "kind": "IDENTIFIER",
+            "name": "a",
+            "startPosition": "1290"
+          },
+          {
+            "endPosition": "1293",
+            "kind": "IDENTIFIER",
+            "name": "b",
+            "startPosition": "1292"
+          }
+        ],
+        "startPosition": "1286"
+      },
+      "endPosition": "1294",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1286"
+    },
+    {
+      "expression": {
+        "endPosition": "1309",
+        "kind": "FUNCTION_INVOCATION",
+        "functionSelect": {
+          "identifier": "foo",
+          "expression": {
+            "endPosition": "1299",
+            "kind": "IDENTIFIER",
+            "name": "obj",
+            "startPosition": "1296"
+          },
+          "endPosition": "1303",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1296"
+        },
+        "arguments": [
+          {
+            "endPosition": "1305",
+            "kind": "IDENTIFIER",
+            "name": "a",
+            "startPosition": "1304"
+          },
+          {
+            "endPosition": "1308",
+            "kind": "IDENTIFIER",
+            "name": "b",
+            "startPosition": "1307"
+          }
+        ],
+        "startPosition": "1296"
+      },
+      "endPosition": "1309",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1296"
+    }
+  ],
+  "sourceName": "parsertests/lhsExpr.js",
+  "strict": "false",
+  "startPosition": "1125"
+}
+,
+{
+  "endPosition": "1110",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "condition": {
+        "endPosition": "1120",
+        "kind": "BOOLEAN_LITERAL",
+        "value": "true",
+        "startPosition": "1116"
+      },
+      "endPosition": "1140",
+      "kind": "WHILE_LOOP",
+      "statement": {
+        "endPosition": "1140",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1138",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1129",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "1124"
+              },
+              "arguments": [
+                {
+                  "endPosition": "1136",
+                  "kind": "STRING_LITERAL",
+                  "value": "hello",
+                  "startPosition": "1131"
+                }
+              ],
+              "startPosition": "1124"
+            },
+            "endPosition": "1138",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1124"
+          }
+        ],
+        "startPosition": "1122"
+      },
+      "startPosition": "1110"
+    },
+    {
+      "condition": {
+        "endPosition": "1173",
+        "kind": "BOOLEAN_LITERAL",
+        "value": "true",
+        "startPosition": "1169"
+      },
+      "endPosition": "1174",
+      "kind": "DO_WHILE_LOOP",
+      "statement": {
+        "endPosition": "1162",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1160",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1151",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "1146"
+              },
+              "arguments": [
+                {
+                  "endPosition": "1158",
+                  "kind": "STRING_LITERAL",
+                  "value": "hello",
+                  "startPosition": "1153"
+                }
+              ],
+              "startPosition": "1146"
+            },
+            "endPosition": "1160",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1146"
+          }
+        ],
+        "startPosition": "1144"
+      },
+      "startPosition": "1141"
+    },
+    {
+      "expression": {
+        "endPosition": "1188",
+        "kind": "IDENTIFIER",
+        "name": "obj",
+        "startPosition": "1185"
+      },
+      "endPosition": "1207",
+      "kind": "FOR_IN_LOOP",
+      "forEach": "false",
+      "variable": {
+        "endPosition": "1181",
+        "kind": "IDENTIFIER",
+        "name": "i",
+        "startPosition": "1180"
+      },
+      "statement": {
+        "endPosition": "1207",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1205",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1197",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "1192"
+              },
+              "arguments": [
+                {
+                  "expression": {
+                    "endPosition": "1201",
+                    "kind": "IDENTIFIER",
+                    "name": "obj",
+                    "startPosition": "1198"
+                  },
+                  "endPosition": "1204",
+                  "kind": "ARRAY_ACCESS",
+                  "index": {
+                    "endPosition": "1203",
+                    "kind": "IDENTIFIER",
+                    "name": "i",
+                    "startPosition": "1202"
+                  },
+                  "startPosition": "1198"
+                }
+              ],
+              "startPosition": "1192"
+            },
+            "endPosition": "1205",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1192"
+          }
+        ],
+        "startPosition": "1190"
+      },
+      "startPosition": "1175"
+    },
+    {
+      "expression": {
+        "endPosition": "1226",
+        "kind": "IDENTIFIER",
+        "name": "obj",
+        "startPosition": "1223"
+      },
+      "endPosition": "1240",
+      "kind": "FOR_IN_LOOP",
+      "forEach": "true",
+      "variable": {
+        "endPosition": "1219",
+        "kind": "IDENTIFIER",
+        "name": "i",
+        "startPosition": "1218"
+      },
+      "statement": {
+        "endPosition": "1240",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1238",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1235",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "1230"
+              },
+              "arguments": [
+                {
+                  "endPosition": "1237",
+                  "kind": "IDENTIFIER",
+                  "name": "i",
+                  "startPosition": "1236"
+                }
+              ],
+              "startPosition": "1230"
+            },
+            "endPosition": "1238",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1230"
+          }
+        ],
+        "startPosition": "1228"
+      },
+      "startPosition": "1208"
+    },
+    {
+      "condition": {
+        "leftOperand": {
+          "endPosition": "1254",
+          "kind": "IDENTIFIER",
+          "name": "i",
+          "startPosition": "1253"
+        },
+        "endPosition": "1259",
+        "kind": "LESS_THAN",
+        "rightOperand": {
+          "endPosition": "1259",
+          "kind": "NUMBER_LITERAL",
+          "value": "10",
+          "startPosition": "1257"
+        },
+        "startPosition": "1253"
+      },
+      "endPosition": "1278",
+      "kind": "FOR_LOOP",
+      "statement": {
+        "endPosition": "1278",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1276",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1273",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "1268"
+              },
+              "arguments": [
+                {
+                  "endPosition": "1275",
+                  "kind": "IDENTIFIER",
+                  "name": "i",
+                  "startPosition": "1274"
+                }
+              ],
+              "startPosition": "1268"
+            },
+            "endPosition": "1276",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1268"
+          }
+        ],
+        "startPosition": "1266"
+      },
+      "update": {
+        "expression": {
+          "endPosition": "1262",
+          "kind": "IDENTIFIER",
+          "name": "i",
+          "startPosition": "1261"
+        },
+        "endPosition": "1264",
+        "kind": "POSTFIX_INCREMENT",
+        "startPosition": "1261"
+      },
+      "startPosition": "1241",
+      "initializer": {
+        "expression": {
+          "endPosition": "1251",
+          "kind": "NUMBER_LITERAL",
+          "value": "0",
+          "startPosition": "1250"
+        },
+        "endPosition": "1251",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "endPosition": "1247",
+          "kind": "IDENTIFIER",
+          "name": "i",
+          "startPosition": "1246"
+        },
+        "startPosition": "1246"
+      }
+    }
+  ],
+  "sourceName": "parsertests/loopStat.js",
+  "strict": "false",
+  "startPosition": "1110"
+}
+,
+{
+  "endPosition": "1125",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1133",
+          "kind": "OBJECT_LITERAL",
+          "startPosition": "1131",
+          "properties": []
+        },
+        "endPosition": "1133",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "endPosition": "1128",
+          "kind": "IDENTIFIER",
+          "name": "obj",
+          "startPosition": "1125"
+        },
+        "startPosition": "1125"
+      },
+      "endPosition": "1133",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1125"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1154",
+          "kind": "OBJECT_LITERAL",
+          "startPosition": "1139",
+          "properties": [
+            {
+              "endPosition": "1143",
+              "kind": "PROPERTY",
+              "value": {
+                "endPosition": "1146",
+                "kind": "NUMBER_LITERAL",
+                "value": "10",
+                "startPosition": "1144"
+              },
+              "startPosition": "1141",
+              "key": {
+                "endPosition": "1142",
+                "kind": "IDENTIFIER",
+                "name": "x",
+                "startPosition": "1141"
+              }
+            },
+            {
+              "endPosition": "1150",
+              "kind": "PROPERTY",
+              "value": {
+                "endPosition": "1152",
+                "kind": "NUMBER_LITERAL",
+                "value": "2",
+                "startPosition": "1151"
+              },
+              "startPosition": "1148",
+              "key": {
+                "endPosition": "1149",
+                "kind": "IDENTIFIER",
+                "name": "y",
+                "startPosition": "1148"
+              }
+            }
+          ]
+        },
+        "endPosition": "1154",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "endPosition": "1136",
+          "kind": "IDENTIFIER",
+          "name": "p",
+          "startPosition": "1135"
+        },
+        "startPosition": "1135"
+      },
+      "endPosition": "1154",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1135"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1179",
+          "kind": "OBJECT_LITERAL",
+          "startPosition": "1160",
+          "properties": [
+            {
+              "endPosition": "1166",
+              "kind": "PROPERTY",
+              "value": {
+                "endPosition": "1169",
+                "kind": "NUMBER_LITERAL",
+                "value": "10",
+                "startPosition": "1167"
+              },
+              "startPosition": "1163",
+              "key": {
+                "endPosition": "1164",
+                "kind": "STRING_LITERAL",
+                "value": "x",
+                "startPosition": "1163"
+              }
+            },
+            {
+              "endPosition": "1175",
+              "kind": "PROPERTY",
+              "value": {
+                "endPosition": "1177",
+                "kind": "NUMBER_LITERAL",
+                "value": "2",
+                "startPosition": "1176"
+              },
+              "startPosition": "1172",
+              "key": {
+                "endPosition": "1173",
+                "kind": "STRING_LITERAL",
+                "value": "y",
+                "startPosition": "1172"
+              }
+            }
+          ]
+        },
+        "endPosition": "1179",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "endPosition": "1157",
+          "kind": "IDENTIFIER",
+          "name": "p",
+          "startPosition": "1156"
+        },
+        "startPosition": "1156"
+      },
+      "endPosition": "1179",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1156"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1241",
+          "kind": "OBJECT_LITERAL",
+          "startPosition": "1185",
+          "properties": [
+            {
+              "getter": {
+                "endPosition": "1195",
+                "kind": "FUNCTION_EXPRESSION",
+                "body": {
+                  "endPosition": "1210",
+                  "kind": "BLOCK",
+                  "statements": [
+                    {
+                      "expression": {
+                        "endPosition": "1210",
+                        "kind": "IDENTIFIER",
+                        "name": "xValue",
+                        "startPosition": "1204"
+                      },
+                      "endPosition": "1210",
+                      "kind": "RETURN",
+                      "startPosition": "1197"
+                    }
+                  ],
+                  "startPosition": "1195"
+                },
+                "strict": "false",
+                "startPosition": "1195",
+                "parameters": []
+              },
+              "endPosition": "1212",
+              "kind": "PROPERTY",
+              "startPosition": "1187",
+              "key": {
+                "endPosition": "1192",
+                "kind": "IDENTIFIER",
+                "name": "x",
+                "startPosition": "1191"
+              }
+            },
+            {
+              "getter": {
+                "endPosition": "1222",
+                "kind": "FUNCTION_EXPRESSION",
+                "body": {
+                  "endPosition": "1237",
+                  "kind": "BLOCK",
+                  "statements": [
+                    {
+                      "expression": {
+                        "endPosition": "1237",
+                        "kind": "IDENTIFIER",
+                        "name": "yValue",
+                        "startPosition": "1231"
+                      },
+                      "endPosition": "1237",
+                      "kind": "RETURN",
+                      "startPosition": "1224"
+                    }
+                  ],
+                  "startPosition": "1222"
+                },
+                "strict": "false",
+                "startPosition": "1222",
+                "parameters": []
+              },
+              "endPosition": "1239",
+              "kind": "PROPERTY",
+              "startPosition": "1214",
+              "key": {
+                "endPosition": "1219",
+                "kind": "IDENTIFIER",
+                "name": "y",
+                "startPosition": "1218"
+              }
+            }
+          ]
+        },
+        "endPosition": "1241",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "endPosition": "1182",
+          "kind": "IDENTIFIER",
+          "name": "p",
+          "startPosition": "1181"
+        },
+        "startPosition": "1181"
+      },
+      "endPosition": "1241",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1181"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1315",
+          "kind": "OBJECT_LITERAL",
+          "startPosition": "1247",
+          "properties": [
+            {
+              "getter": {
+                "endPosition": "1259",
+                "kind": "FUNCTION_EXPRESSION",
+                "body": {
+                  "endPosition": "1277",
+                  "kind": "BLOCK",
+                  "statements": [
+                    {
+                      "expression": {
+                        "identifier": "_foo",
+                        "expression": {
+                          "endPosition": "1272",
+                          "kind": "IDENTIFIER",
+                          "name": "this",
+                          "startPosition": "1268"
+                        },
+                        "endPosition": "1277",
+                        "kind": "MEMBER_SELECT",
+                        "startPosition": "1268"
+                      },
+                      "endPosition": "1277",
+                      "kind": "RETURN",
+                      "startPosition": "1261"
+                    }
+                  ],
+                  "startPosition": "1259"
+                },
+                "strict": "false",
+                "startPosition": "1259",
+                "parameters": []
+              },
+              "endPosition": "1279",
+              "kind": "PROPERTY",
+              "setter": {
+                "endPosition": "1294",
+                "kind": "FUNCTION_EXPRESSION",
+                "body": {
+                  "endPosition": "1311",
+                  "kind": "BLOCK",
+                  "statements": [
+                    {
+                      "expression": {
+                        "expression": {
+                          "endPosition": "1311",
+                          "kind": "IDENTIFIER",
+                          "name": "val",
+                          "startPosition": "1308"
+                        },
+                        "endPosition": "1311",
+                        "kind": "ASSIGNMENT",
+                        "variable": {
+                          "identifier": "_foo",
+                          "expression": {
+                            "endPosition": "1300",
+                            "kind": "IDENTIFIER",
+                            "name": "this",
+                            "startPosition": "1296"
+                          },
+                          "endPosition": "1305",
+                          "kind": "MEMBER_SELECT",
+                          "startPosition": "1296"
+                        },
+                        "startPosition": "1296"
+                      },
+                      "endPosition": "1311",
+                      "kind": "EXPRESSION_STATEMENT",
+                      "startPosition": "1296"
+                    }
+                  ],
+                  "startPosition": "1294"
+                },
+                "strict": "false",
+                "startPosition": "1294",
+                "parameters": [
+                  {
+                    "endPosition": "1292",
+                    "kind": "IDENTIFIER",
+                    "name": "val",
+                    "startPosition": "1289"
+                  }
+                ]
+              },
+              "startPosition": "1249",
+              "key": {
+                "endPosition": "1256",
+                "kind": "IDENTIFIER",
+                "name": "foo",
+                "startPosition": "1253"
+              }
+            }
+          ]
+        },
+        "endPosition": "1315",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "endPosition": "1244",
+          "kind": "IDENTIFIER",
+          "name": "p",
+          "startPosition": "1243"
+        },
+        "startPosition": "1243"
+      },
+      "endPosition": "1315",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1243"
+    }
+  ],
+  "sourceName": "parsertests/objectLitExpr.js",
+  "strict": "false",
+  "startPosition": "1125"
+}
+,
+{
+  "endPosition": "1118",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "leftOperand": {
+          "leftOperand": {
+            "endPosition": "1120",
+            "kind": "NUMBER_LITERAL",
+            "value": "2",
+            "startPosition": "1119"
+          },
+          "endPosition": "1126",
+          "kind": "PLUS",
+          "rightOperand": {
+            "endPosition": "1126",
+            "kind": "NUMBER_LITERAL",
+            "value": "1",
+            "startPosition": "1125"
+          },
+          "startPosition": "1119"
+        },
+        "endPosition": "1131",
+        "kind": "PLUS",
+        "rightOperand": {
+          "endPosition": "1131",
+          "kind": "NUMBER_LITERAL",
+          "value": "4",
+          "startPosition": "1130"
+        },
+        "startPosition": "1119"
+      },
+      "endPosition": "1131",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1118"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "leftOperand": {
+            "endPosition": "1134",
+            "kind": "NUMBER_LITERAL",
+            "value": "3",
+            "startPosition": "1133"
+          },
+          "endPosition": "1139",
+          "kind": "PLUS",
+          "rightOperand": {
+            "endPosition": "1139",
+            "kind": "NUMBER_LITERAL",
+            "value": "7",
+            "startPosition": "1138"
+          },
+          "startPosition": "1133"
+        },
+        "endPosition": "1146",
+        "kind": "LEFT_SHIFT",
+        "rightOperand": {
+          "endPosition": "1146",
+          "kind": "NUMBER_LITERAL",
+          "value": "5",
+          "startPosition": "1145"
+        },
+        "startPosition": "1133"
+      },
+      "endPosition": "1147",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1133"
+    }
+  ],
+  "sourceName": "parsertests/parenExpr.js",
+  "strict": "false",
+  "startPosition": "1118"
+}
+,
+{
+  "endPosition": "1119",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1123",
+        "kind": "IDENTIFIER",
+        "name": "this",
+        "startPosition": "1119"
+      },
+      "endPosition": "1123",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1119"
+    },
+    {
+      "expression": {
+        "endPosition": "1128",
+        "kind": "IDENTIFIER",
+        "name": "foo",
+        "startPosition": "1125"
+      },
+      "endPosition": "1128",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1125"
+    },
+    {
+      "expression": {
+        "endPosition": "1134",
+        "kind": "NULL_LITERAL",
+        "startPosition": "1130"
+      },
+      "endPosition": "1134",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1130"
+    },
+    {
+      "expression": {
+        "endPosition": "1140",
+        "kind": "BOOLEAN_LITERAL",
+        "value": "true",
+        "startPosition": "1136"
+      },
+      "endPosition": "1140",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1136"
+    },
+    {
+      "expression": {
+        "endPosition": "1147",
+        "kind": "BOOLEAN_LITERAL",
+        "value": "false",
+        "startPosition": "1142"
+      },
+      "endPosition": "1147",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1142"
+    },
+    {
+      "expression": {
+        "endPosition": "1151",
+        "kind": "NUMBER_LITERAL",
+        "value": "33",
+        "startPosition": "1149"
+      },
+      "endPosition": "1151",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1149"
+    },
+    {
+      "expression": {
+        "endPosition": "1157",
+        "kind": "NUMBER_LITERAL",
+        "value": "3.14",
+        "startPosition": "1153"
+      },
+      "endPosition": "1157",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1153"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "leftOperand": {
+            "endPosition": "1162",
+            "kind": "NUMBER_LITERAL",
+            "value": "10",
+            "startPosition": "1160"
+          },
+          "endPosition": "1166",
+          "kind": "PLUS",
+          "rightOperand": {
+            "endPosition": "1166",
+            "kind": "NUMBER_LITERAL",
+            "value": "3",
+            "startPosition": "1165"
+          },
+          "startPosition": "1160"
+        },
+        "endPosition": "1169",
+        "kind": "MULTIPLY",
+        "rightOperand": {
+          "endPosition": "1169",
+          "kind": "NUMBER_LITERAL",
+          "value": "2",
+          "startPosition": "1168"
+        },
+        "startPosition": "1160"
+      },
+      "endPosition": "1169",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1159"
+    },
+    {
+      "expression": {
+        "endPosition": "1174",
+        "kind": "OBJECT_LITERAL",
+        "startPosition": "1172",
+        "properties": []
+      },
+      "endPosition": "1175",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1171"
+    },
+    {
+      "expression": {
+        "endPosition": "1186",
+        "kind": "OBJECT_LITERAL",
+        "startPosition": "1178",
+        "properties": [
+          {
+            "endPosition": "1182",
+            "kind": "PROPERTY",
+            "value": {
+              "endPosition": "1184",
+              "kind": "NUMBER_LITERAL",
+              "value": "3",
+              "startPosition": "1183"
+            },
+            "startPosition": "1180",
+            "key": {
+              "endPosition": "1181",
+              "kind": "IDENTIFIER",
+              "name": "x",
+              "startPosition": "1180"
+            }
+          }
+        ]
+      },
+      "endPosition": "1187",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1177"
+    },
+    {
+      "expression": {
+        "endPosition": "1191",
+        "kind": "ARRAY_LITERAL",
+        "elements": [],
+        "startPosition": "1189"
+      },
+      "endPosition": "1191",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1189"
+    },
+    {
+      "expression": {
+        "endPosition": "1197",
+        "kind": "ARRAY_LITERAL",
+        "elements": [
+          null,
+          null
+        ],
+        "startPosition": "1193"
+      },
+      "endPosition": "1197",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1193"
+    },
+    {
+      "expression": {
+        "endPosition": "1208",
+        "kind": "ARRAY_LITERAL",
+        "elements": [
+          {
+            "endPosition": "1201",
+            "kind": "NUMBER_LITERAL",
+            "value": "4",
+            "startPosition": "1200"
+          },
+          {
+            "endPosition": "1204",
+            "kind": "NUMBER_LITERAL",
+            "value": "5",
+            "startPosition": "1203"
+          },
+          {
+            "endPosition": "1207",
+            "kind": "NUMBER_LITERAL",
+            "value": "5",
+            "startPosition": "1206"
+          }
+        ],
+        "startPosition": "1199"
+      },
+      "endPosition": "1208",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1199"
+    }
+  ],
+  "sourceName": "parsertests/primaryExpr.js",
+  "strict": "false",
+  "startPosition": "1119"
+}
+,
+{
+  "endPosition": "1114",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1127",
+      "kind": "VARIABLE",
+      "name": "x",
+      "startPosition": "1118",
+      "initializer": {
+        "endPosition": "1127",
+        "kind": "REGEXP_LITERAL",
+        "options": "",
+        "pattern": "foo",
+        "startPosition": "1122"
+      }
+    },
+    {
+      "endPosition": "1143",
+      "kind": "VARIABLE",
+      "name": "y",
+      "startPosition": "1133",
+      "initializer": {
+        "endPosition": "1143",
+        "kind": "REGEXP_LITERAL",
+        "options": "g",
+        "pattern": "foo",
+        "startPosition": "1137"
+      }
+    },
+    {
+      "endPosition": "1168",
+      "kind": "VARIABLE",
+      "name": "z",
+      "startPosition": "1149",
+      "initializer": {
+        "endPosition": "1168",
+        "kind": "REGEXP_LITERAL",
+        "options": "",
+        "pattern": "[a-z]*[1-10]?",
+        "startPosition": "1153"
+      }
+    }
+  ],
+  "sourceName": "parsertests/regexp_literal.js",
+  "strict": "false",
+  "startPosition": "1114"
+}
+,
+{
+  "endPosition": "1118",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1130",
+        "kind": "FUNCTION_EXPRESSION",
+        "body": {
+          "endPosition": "1138",
+          "kind": "BLOCK",
+          "statements": [
+            {
+              "endPosition": "1138",
+              "kind": "RETURN",
+              "startPosition": "1132"
+            }
+          ],
+          "startPosition": "1130"
+        },
+        "strict": "false",
+        "startPosition": "1130",
+        "parameters": []
+      },
+      "endPosition": "1141",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1118"
+    },
+    {
+      "expression": {
+        "endPosition": "1155",
+        "kind": "FUNCTION_EXPRESSION",
+        "body": {
+          "endPosition": "1167",
+          "kind": "BLOCK",
+          "statements": [
+            {
+              "expression": {
+                "endPosition": "1167",
+                "kind": "IDENTIFIER",
+                "name": "res",
+                "startPosition": "1164"
+              },
+              "endPosition": "1167",
+              "kind": "RETURN",
+              "startPosition": "1157"
+            }
+          ],
+          "startPosition": "1155"
+        },
+        "strict": "false",
+        "startPosition": "1155",
+        "parameters": []
+      },
+      "endPosition": "1170",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1143"
+    },
+    {
+      "expression": {
+        "endPosition": "1184",
+        "kind": "FUNCTION_EXPRESSION",
+        "body": {
+          "endPosition": "1198",
+          "kind": "BLOCK",
+          "statements": [
+            {
+              "expression": {
+                "endPosition": "1198",
+                "kind": "FUNCTION_INVOCATION",
+                "functionSelect": {
+                  "endPosition": "1196",
+                  "kind": "IDENTIFIER",
+                  "name": "foo",
+                  "startPosition": "1193"
+                },
+                "arguments": [],
+                "startPosition": "1193"
+              },
+              "endPosition": "1198",
+              "kind": "RETURN",
+              "startPosition": "1186"
+            }
+          ],
+          "startPosition": "1184"
+        },
+        "strict": "false",
+        "startPosition": "1184",
+        "parameters": []
+      },
+      "endPosition": "1201",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1172"
+    }
+  ],
+  "sourceName": "parsertests/returnStat.js",
+  "strict": "false",
+  "startPosition": "1118"
+}
+,
+{
+  "endPosition": "1111",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "cases": [],
+      "expression": {
+        "endPosition": "1122",
+        "kind": "IDENTIFIER",
+        "name": "key",
+        "startPosition": "1119"
+      },
+      "endPosition": "1126",
+      "kind": "SWITCH",
+      "startPosition": "1111"
+    },
+    {
+      "cases": [
+        {
+          "expression": {
+            "endPosition": "1149",
+            "kind": "NUMBER_LITERAL",
+            "value": "2",
+            "startPosition": "1148"
+          },
+          "endPosition": "1166",
+          "kind": "CASE",
+          "statements": [
+            {
+              "expression": {
+                "endPosition": "1158",
+                "kind": "FUNCTION_INVOCATION",
+                "functionSelect": {
+                  "endPosition": "1156",
+                  "kind": "IDENTIFIER",
+                  "name": "hello",
+                  "startPosition": "1151"
+                },
+                "arguments": [],
+                "startPosition": "1151"
+              },
+              "endPosition": "1158",
+              "kind": "EXPRESSION_STATEMENT",
+              "startPosition": "1151"
+            },
+            {
+              "endPosition": "1166",
+              "kind": "BREAK",
+              "startPosition": "1160"
+            }
+          ],
+          "startPosition": "1143"
+        }
+      ],
+      "expression": {
+        "endPosition": "1139",
+        "kind": "IDENTIFIER",
+        "name": "key",
+        "startPosition": "1136"
+      },
+      "endPosition": "1168",
+      "kind": "SWITCH",
+      "startPosition": "1128"
+    },
+    {
+      "cases": [
+        {
+          "expression": {
+            "endPosition": "1191",
+            "kind": "NUMBER_LITERAL",
+            "value": "4",
+            "startPosition": "1190"
+          },
+          "endPosition": "1208",
+          "kind": "CASE",
+          "statements": [
+            {
+              "expression": {
+                "endPosition": "1200",
+                "kind": "FUNCTION_INVOCATION",
+                "functionSelect": {
+                  "endPosition": "1198",
+                  "kind": "IDENTIFIER",
+                  "name": "hello",
+                  "startPosition": "1193"
+                },
+                "arguments": [],
+                "startPosition": "1193"
+              },
+              "endPosition": "1200",
+              "kind": "EXPRESSION_STATEMENT",
+              "startPosition": "1193"
+            },
+            {
+              "endPosition": "1208",
+              "kind": "BREAK",
+              "startPosition": "1202"
+            }
+          ],
+          "startPosition": "1185"
+        },
+        {
+          "expression": {
+            "endPosition": "1215",
+            "kind": "NUMBER_LITERAL",
+            "value": "2",
+            "startPosition": "1214"
+          },
+          "endPosition": "1232",
+          "kind": "CASE",
+          "statements": [
+            {
+              "expression": {
+                "endPosition": "1224",
+                "kind": "FUNCTION_INVOCATION",
+                "functionSelect": {
+                  "endPosition": "1222",
+                  "kind": "IDENTIFIER",
+                  "name": "world",
+                  "startPosition": "1217"
+                },
+                "arguments": [],
+                "startPosition": "1217"
+              },
+              "endPosition": "1224",
+              "kind": "EXPRESSION_STATEMENT",
+              "startPosition": "1217"
+            },
+            {
+              "endPosition": "1232",
+              "kind": "BREAK",
+              "startPosition": "1226"
+            }
+          ],
+          "startPosition": "1209"
+        },
+        {
+          "endPosition": "1247",
+          "kind": "CASE",
+          "statements": [
+            {
+              "endPosition": "1247",
+              "kind": "BREAK",
+              "startPosition": "1242"
+            }
+          ],
+          "startPosition": "1233"
+        }
+      ],
+      "expression": {
+        "endPosition": "1181",
+        "kind": "IDENTIFIER",
+        "name": "key",
+        "startPosition": "1178"
+      },
+      "endPosition": "1249",
+      "kind": "SWITCH",
+      "startPosition": "1170"
+    }
+  ],
+  "sourceName": "parsertests/switchStat.js",
+  "strict": "false",
+  "startPosition": "1111"
+}
+,
+{
+  "endPosition": "1110",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1119",
+        "kind": "IDENTIFIER",
+        "name": "err",
+        "startPosition": "1116"
+      },
+      "endPosition": "1120",
+      "kind": "THROW",
+      "startPosition": "1110"
+    },
+    {
+      "expression": {
+        "endPosition": "1133",
+        "kind": "STRING_LITERAL",
+        "value": "wrong",
+        "startPosition": "1128"
+      },
+      "endPosition": "1135",
+      "kind": "THROW",
+      "startPosition": "1121"
+    },
+    {
+      "expression": {
+        "constructorExpression": {
+          "endPosition": "1155",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "endPosition": "1155",
+            "kind": "IDENTIFIER",
+            "name": "TypeError",
+            "startPosition": "1146"
+          },
+          "arguments": [],
+          "startPosition": "1146"
+        },
+        "endPosition": "1155",
+        "kind": "NEW",
+        "startPosition": "1142"
+      },
+      "endPosition": "1156",
+      "kind": "THROW",
+      "startPosition": "1136"
+    },
+    {
+      "expression": {
+        "constructorExpression": {
+          "endPosition": "1192",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "endPosition": "1176",
+            "kind": "IDENTIFIER",
+            "name": "TypeError",
+            "startPosition": "1167"
+          },
+          "arguments": [
+            {
+              "endPosition": "1190",
+              "kind": "STRING_LITERAL",
+              "value": "not an array",
+              "startPosition": "1178"
+            }
+          ],
+          "startPosition": "1167"
+        },
+        "endPosition": "1192",
+        "kind": "NEW",
+        "startPosition": "1163"
+      },
+      "endPosition": "1193",
+      "kind": "THROW",
+      "startPosition": "1157"
+    },
+    {
+      "expression": {
+        "endPosition": "1217",
+        "kind": "OBJECT_LITERAL",
+        "startPosition": "1200",
+        "properties": [
+          {
+            "endPosition": "1206",
+            "kind": "PROPERTY",
+            "value": {
+              "endPosition": "1214",
+              "kind": "STRING_LITERAL",
+              "value": "wrong!",
+              "startPosition": "1208"
+            },
+            "startPosition": "1202",
+            "key": {
+              "endPosition": "1205",
+              "kind": "IDENTIFIER",
+              "name": "msg",
+              "startPosition": "1202"
+            }
+          }
+        ]
+      },
+      "endPosition": "1218",
+      "kind": "THROW",
+      "startPosition": "1194"
+    }
+  ],
+  "sourceName": "parsertests/throwStat.js",
+  "strict": "false",
+  "startPosition": "1110"
+}
+,
+{
+  "endPosition": "1121",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1142",
+      "kind": "TRY",
+      "catches": [
+        {
+          "endPosition": "1142",
+          "kind": "CATCH",
+          "parameter": {
+            "endPosition": "1137",
+            "kind": "IDENTIFIER",
+            "name": "e",
+            "startPosition": "1136"
+          },
+          "block": {
+            "endPosition": "1142",
+            "kind": "BLOCK",
+            "statements": [],
+            "startPosition": "1139"
+          },
+          "startPosition": "1129"
+        }
+      ],
+      "block": {
+        "endPosition": "1128",
+        "kind": "BLOCK",
+        "statements": [],
+        "startPosition": "1125"
+      },
+      "startPosition": "1121"
+    },
+    {
+      "endPosition": "1175",
+      "kind": "TRY",
+      "catches": [
+        {
+          "endPosition": "1164",
+          "kind": "CATCH",
+          "parameter": {
+            "endPosition": "1159",
+            "kind": "IDENTIFIER",
+            "name": "e",
+            "startPosition": "1158"
+          },
+          "block": {
+            "endPosition": "1164",
+            "kind": "BLOCK",
+            "statements": [],
+            "startPosition": "1161"
+          },
+          "startPosition": "1151"
+        }
+      ],
+      "block": {
+        "endPosition": "1150",
+        "kind": "BLOCK",
+        "statements": [],
+        "startPosition": "1147"
+      },
+      "finallyBlock": {
+        "endPosition": "1175",
+        "kind": "BLOCK",
+        "statements": [],
+        "startPosition": "1173"
+      },
+      "startPosition": "1143"
+    },
+    {
+      "endPosition": "1194",
+      "kind": "TRY",
+      "catches": [],
+      "block": {
+        "endPosition": "1183",
+        "kind": "BLOCK",
+        "statements": [],
+        "startPosition": "1180"
+      },
+      "finallyBlock": {
+        "endPosition": "1194",
+        "kind": "BLOCK",
+        "statements": [],
+        "startPosition": "1192"
+      },
+      "startPosition": "1176"
+    },
+    {
+      "endPosition": "1225",
+      "kind": "TRY",
+      "catches": [
+        {
+          "endPosition": "1225",
+          "kind": "CATCH",
+          "parameter": {
+            "endPosition": "1211",
+            "kind": "IDENTIFIER",
+            "name": "e",
+            "startPosition": "1210"
+          },
+          "block": {
+            "endPosition": "1225",
+            "kind": "BLOCK",
+            "statements": [
+              {
+                "expression": {
+                  "endPosition": "1223",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "endPosition": "1221",
+                    "kind": "IDENTIFIER",
+                    "name": "handle",
+                    "startPosition": "1215"
+                  },
+                  "arguments": [],
+                  "startPosition": "1215"
+                },
+                "endPosition": "1223",
+                "kind": "EXPRESSION_STATEMENT",
+                "startPosition": "1215"
+              }
+            ],
+            "startPosition": "1213"
+          },
+          "startPosition": "1203"
+        }
+      ],
+      "block": {
+        "endPosition": "1202",
+        "kind": "BLOCK",
+        "statements": [],
+        "startPosition": "1199"
+      },
+      "startPosition": "1195"
+    },
+    {
+      "endPosition": "1283",
+      "kind": "TRY",
+      "catches": [
+        {
+          "endPosition": "1263",
+          "kind": "CATCH",
+          "parameter": {
+            "endPosition": "1249",
+            "kind": "IDENTIFIER",
+            "name": "e",
+            "startPosition": "1248"
+          },
+          "block": {
+            "endPosition": "1263",
+            "kind": "BLOCK",
+            "statements": [
+              {
+                "expression": {
+                  "endPosition": "1261",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "endPosition": "1259",
+                    "kind": "IDENTIFIER",
+                    "name": "handle",
+                    "startPosition": "1253"
+                  },
+                  "arguments": [],
+                  "startPosition": "1253"
+                },
+                "endPosition": "1261",
+                "kind": "EXPRESSION_STATEMENT",
+                "startPosition": "1253"
+              }
+            ],
+            "startPosition": "1251"
+          },
+          "startPosition": "1241"
+        }
+      ],
+      "block": {
+        "endPosition": "1240",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1238",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1236",
+                "kind": "IDENTIFIER",
+                "name": "that",
+                "startPosition": "1232"
+              },
+              "arguments": [],
+              "startPosition": "1232"
+            },
+            "endPosition": "1238",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1232"
+          }
+        ],
+        "startPosition": "1230"
+      },
+      "finallyBlock": {
+        "endPosition": "1283",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1281",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1279",
+                "kind": "IDENTIFIER",
+                "name": "clean",
+                "startPosition": "1274"
+              },
+              "arguments": [],
+              "startPosition": "1274"
+            },
+            "endPosition": "1281",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1274"
+          }
+        ],
+        "startPosition": "1272"
+      },
+      "startPosition": "1226"
+    },
+    {
+      "endPosition": "1368",
+      "kind": "TRY",
+      "catches": [
+        {
+          "condition": {
+            "leftOperand": {
+              "endPosition": "1312",
+              "kind": "IDENTIFIER",
+              "name": "e",
+              "startPosition": "1311"
+            },
+            "expression": {
+              "endPosition": "1312",
+              "kind": "IDENTIFIER",
+              "name": "e",
+              "startPosition": "1311"
+            },
+            "endPosition": "1333",
+            "kind": "INSTANCE_OF",
+            "rightOperand": {
+              "endPosition": "1333",
+              "kind": "IDENTIFIER",
+              "name": "TypeError",
+              "startPosition": "1324"
+            },
+            "type": {
+              "endPosition": "1333",
+              "kind": "IDENTIFIER",
+              "name": "TypeError",
+              "startPosition": "1324"
+            },
+            "startPosition": "1311"
+          },
+          "endPosition": "1347",
+          "kind": "CATCH",
+          "parameter": {
+            "endPosition": "1307",
+            "kind": "IDENTIFIER",
+            "name": "e",
+            "startPosition": "1306"
+          },
+          "block": {
+            "endPosition": "1347",
+            "kind": "BLOCK",
+            "statements": [
+              {
+                "expression": {
+                  "endPosition": "1345",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "endPosition": "1343",
+                    "kind": "IDENTIFIER",
+                    "name": "handle",
+                    "startPosition": "1337"
+                  },
+                  "arguments": [],
+                  "startPosition": "1337"
+                },
+                "endPosition": "1345",
+                "kind": "EXPRESSION_STATEMENT",
+                "startPosition": "1337"
+              }
+            ],
+            "startPosition": "1335"
+          },
+          "startPosition": "1299"
+        },
+        {
+          "endPosition": "1368",
+          "kind": "CATCH",
+          "parameter": {
+            "endPosition": "1356",
+            "kind": "IDENTIFIER",
+            "name": "e",
+            "startPosition": "1355"
+          },
+          "block": {
+            "endPosition": "1368",
+            "kind": "BLOCK",
+            "statements": [
+              {
+                "expression": {
+                  "endPosition": "1366",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "endPosition": "1364",
+                    "kind": "IDENTIFIER",
+                    "name": "rest",
+                    "startPosition": "1360"
+                  },
+                  "arguments": [],
+                  "startPosition": "1360"
+                },
+                "endPosition": "1366",
+                "kind": "EXPRESSION_STATEMENT",
+                "startPosition": "1360"
+              }
+            ],
+            "startPosition": "1358"
+          },
+          "startPosition": "1348"
+        }
+      ],
+      "block": {
+        "endPosition": "1298",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1296",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "1294",
+                "kind": "IDENTIFIER",
+                "name": "that",
+                "startPosition": "1290"
+              },
+              "arguments": [],
+              "startPosition": "1290"
+            },
+            "endPosition": "1296",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1290"
+          }
+        ],
+        "startPosition": "1288"
+      },
+      "startPosition": "1284"
+    }
+  ],
+  "sourceName": "parsertests/tryCatchStat.js",
+  "strict": "false",
+  "startPosition": "1121"
+}
+,
+{
+  "endPosition": "1115",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1116",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1115"
+        },
+        "endPosition": "1118",
+        "kind": "POSTFIX_INCREMENT",
+        "startPosition": "1115"
+      },
+      "endPosition": "1118",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1115"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1121",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1120"
+        },
+        "endPosition": "1123",
+        "kind": "POSTFIX_DECREMENT",
+        "startPosition": "1120"
+      },
+      "endPosition": "1123",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1120"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1133",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1132"
+        },
+        "endPosition": "1133",
+        "kind": "DELETE",
+        "startPosition": "1125"
+      },
+      "endPosition": "1133",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1125"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1141",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1140"
+        },
+        "endPosition": "1141",
+        "kind": "VOID",
+        "startPosition": "1135"
+      },
+      "endPosition": "1141",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1135"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1151",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1150"
+        },
+        "endPosition": "1151",
+        "kind": "TYPEOF",
+        "startPosition": "1143"
+      },
+      "endPosition": "1151",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1143"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1156",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1155"
+        },
+        "endPosition": "1156",
+        "kind": "PREFIX_INCREMENT",
+        "startPosition": "1153"
+      },
+      "endPosition": "1156",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1153"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1161",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1160"
+        },
+        "endPosition": "1161",
+        "kind": "PREFIX_DECREMENT",
+        "startPosition": "1158"
+      },
+      "endPosition": "1161",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1158"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1165",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1164"
+        },
+        "endPosition": "1165",
+        "kind": "PLUS",
+        "startPosition": "1163"
+      },
+      "endPosition": "1165",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1163"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1169",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1168"
+        },
+        "endPosition": "1169",
+        "kind": "MINUS",
+        "startPosition": "1167"
+      },
+      "endPosition": "1169",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1167"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1173",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1172"
+        },
+        "endPosition": "1173",
+        "kind": "BITWISE_COMPLEMENT",
+        "startPosition": "1171"
+      },
+      "endPosition": "1173",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1171"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1177",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1176"
+        },
+        "endPosition": "1177",
+        "kind": "LOGICAL_COMPLEMENT",
+        "startPosition": "1175"
+      },
+      "endPosition": "1177",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1175"
+    }
+  ],
+  "sourceName": "parsertests/unaryExpr.js",
+  "strict": "false",
+  "startPosition": "1115"
+}
+,
+{
+  "endPosition": "1122",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1165",
+      "kind": "FUNCTION",
+      "name": "f",
+      "body": {
+        "endPosition": "1162",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "1162",
+              "kind": "STRING_LITERAL",
+              "value": "use strict",
+              "startPosition": "1152"
+            },
+            "endPosition": "1162",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1152"
+          }
+        ],
+        "startPosition": "1149"
+      },
+      "strict": "true",
+      "startPosition": "1136",
+      "parameters": []
+    },
+    {
+      "expression": {
+        "endPosition": "1133",
+        "kind": "STRING_LITERAL",
+        "value": "use strict",
+        "startPosition": "1123"
+      },
+      "endPosition": "1133",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1123"
+    }
+  ],
+  "sourceName": "parsertests/useStrict.js",
+  "strict": "true",
+  "startPosition": "1122"
+}
+,
+{
+  "endPosition": "1143",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1148",
+      "kind": "VARIABLE",
+      "name": "a",
+      "startPosition": "1147"
+    },
+    {
+      "endPosition": "1155",
+      "kind": "VARIABLE",
+      "name": "a",
+      "startPosition": "1154"
+    },
+    {
+      "endPosition": "1158",
+      "kind": "VARIABLE",
+      "name": "b",
+      "startPosition": "1157"
+    },
+    {
+      "endPosition": "1200",
+      "kind": "VARIABLE",
+      "name": "a",
+      "startPosition": "1190",
+      "initializer": {
+        "endPosition": "1200",
+        "kind": "STRING_LITERAL",
+        "value": "hello",
+        "startPosition": "1195"
+      }
+    },
+    {
+      "endPosition": "1212",
+      "kind": "VARIABLE",
+      "name": "a",
+      "startPosition": "1207",
+      "initializer": {
+        "endPosition": "1212",
+        "kind": "NUMBER_LITERAL",
+        "value": "1",
+        "startPosition": "1211"
+      }
+    },
+    {
+      "endPosition": "1219",
+      "kind": "VARIABLE",
+      "name": "b",
+      "startPosition": "1214",
+      "initializer": {
+        "endPosition": "1219",
+        "kind": "NUMBER_LITERAL",
+        "value": "2",
+        "startPosition": "1218"
+      }
+    },
+    {
+      "endPosition": "1226",
+      "kind": "VARIABLE",
+      "name": "c",
+      "startPosition": "1221",
+      "initializer": {
+        "endPosition": "1226",
+        "kind": "NUMBER_LITERAL",
+        "value": "3",
+        "startPosition": "1225"
+      }
+    }
+  ],
+  "sourceName": "parsertests/varDecl.js",
+  "strict": "false",
+  "startPosition": "1143"
+}
+,
+{
+  "endPosition": "1111",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1133",
+      "kind": "WITH",
+      "scope": {
+        "endPosition": "1122",
+        "kind": "IDENTIFIER",
+        "name": "scope",
+        "startPosition": "1117"
+      },
+      "statement": {
+        "endPosition": "1133",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "expression": {
+                "endPosition": "1131",
+                "kind": "IDENTIFIER",
+                "name": "y",
+                "startPosition": "1130"
+              },
+              "endPosition": "1131",
+              "kind": "ASSIGNMENT",
+              "variable": {
+                "endPosition": "1127",
+                "kind": "IDENTIFIER",
+                "name": "x",
+                "startPosition": "1126"
+              },
+              "startPosition": "1126"
+            },
+            "endPosition": "1131",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1126"
+          }
+        ],
+        "startPosition": "1124"
+      },
+      "startPosition": "1111"
+    }
+  ],
+  "sourceName": "parsertests/withStat.js",
+  "strict": "false",
+  "startPosition": "1111"
+}
+,
+{
+  "fileName": "parsernegativetests/caseoutofswitch.js",
+  "code": "case (1090, 4)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1090",
+  "message": "parsernegativetests/caseoutofswitch.js:29:0 Expected an operand but found case\ncase 23:\n^",
+  "lineNumber": "29"
+}
+,
+{
+  "fileName": "parsernegativetests/caseoutofswitch.js",
+  "code": "default (1112, 7)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1112",
+  "message": "parsernegativetests/caseoutofswitch.js:31:0 Expected an operand but found default\ndefault:\n^",
+  "lineNumber": "31"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1098",
+        "kind": "ERROR",
+        "startPosition": "1090"
+      },
+      "endPosition": "1098",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1090"
+    },
+    {
+      "expression": {
+        "endPosition": "1110",
+        "kind": "FUNCTION_INVOCATION",
+        "functionSelect": {
+          "endPosition": "1104",
+          "kind": "IDENTIFIER",
+          "name": "print",
+          "startPosition": "1099"
+        },
+        "arguments": [
+          {
+            "endPosition": "1108",
+            "kind": "STRING_LITERAL",
+            "value": "23",
+            "startPosition": "1106"
+          }
+        ],
+        "startPosition": "1099"
+      },
+      "endPosition": "1110",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1099"
+    },
+    {
+      "expression": {
+        "endPosition": "1120",
+        "kind": "ERROR",
+        "startPosition": "1112"
+      },
+      "endPosition": "1120",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1112"
+    },
+    {
+      "expression": {
+        "endPosition": "1135",
+        "kind": "FUNCTION_INVOCATION",
+        "functionSelect": {
+          "endPosition": "1126",
+          "kind": "IDENTIFIER",
+          "name": "print",
+          "startPosition": "1121"
+        },
+        "arguments": [
+          {
+            "endPosition": "1133",
+            "kind": "STRING_LITERAL",
+            "value": "hello",
+            "startPosition": "1128"
+          }
+        ],
+        "startPosition": "1121"
+      },
+      "endPosition": "1135",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1121"
+    }
+  ],
+  "sourceName": "parsernegativetests/caseoutofswitch.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/illegalbreak.js",
+  "code": "break (1090, 5)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1090",
+  "message": "parsernegativetests/illegalbreak.js:29:0 Illegal break statement\nbreak;\n^",
+  "lineNumber": "29"
+}
+,
+{
+  "fileName": "parsernegativetests/illegalbreak.js",
+  "code": "ident (1103, 3)",
+  "columnNumber": "6",
+  "kind": "ERROR",
+  "position": "1103",
+  "message": "parsernegativetests/illegalbreak.js:30:6 Undefined Label \"foo\"\nbreak foo;\n      ^",
+  "lineNumber": "30"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1096",
+        "kind": "ERROR",
+        "startPosition": "1095"
+      },
+      "endPosition": "1096",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1095"
+    },
+    {
+      "expression": {
+        "endPosition": "1107",
+        "kind": "ERROR",
+        "startPosition": "1106"
+      },
+      "endPosition": "1107",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1106"
+    }
+  ],
+  "sourceName": "parsernegativetests/illegalbreak.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/illegalcontinue.js",
+  "code": "continue (1090, 8)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1090",
+  "message": "parsernegativetests/illegalcontinue.js:29:0 Illegal continue statement\ncontinue;\n^",
+  "lineNumber": "29"
+}
+,
+{
+  "fileName": "parsernegativetests/illegalcontinue.js",
+  "code": "ident (1109, 3)",
+  "columnNumber": "9",
+  "kind": "ERROR",
+  "position": "1109",
+  "message": "parsernegativetests/illegalcontinue.js:30:9 Undefined Label \"foo\"\ncontinue foo;\n         ^",
+  "lineNumber": "30"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1099",
+        "kind": "ERROR",
+        "startPosition": "1098"
+      },
+      "endPosition": "1099",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1098"
+    },
+    {
+      "expression": {
+        "endPosition": "1113",
+        "kind": "ERROR",
+        "startPosition": "1112"
+      },
+      "endPosition": "1113",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1112"
+    }
+  ],
+  "sourceName": "parsernegativetests/illegalcontinue.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/illegallvalue.js",
+  "code": "decimal (1090, 2)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1090",
+  "message": "parsernegativetests/illegallvalue.js:29:0 Invalid left hand side for assignment\n44 = 54;\n^",
+  "lineNumber": "29"
+}
+,
+{
+  "fileName": "parsernegativetests/illegallvalue.js",
+  "code": "decimal (1099, 3)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1099",
+  "message": "parsernegativetests/illegallvalue.js:30:0 Invalid left hand side for assignment\n233 += 33;\n^",
+  "lineNumber": "30"
+}
+,
+{
+  "fileName": "parsernegativetests/illegallvalue.js",
+  "code": "decimal (1110, 4)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1110",
+  "message": "parsernegativetests/illegallvalue.js:31:0 Invalid left hand side for assignment\n3423 -= 234;\n^",
+  "lineNumber": "31"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1098",
+        "kind": "ERROR",
+        "startPosition": "1097"
+      },
+      "endPosition": "1098",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1097"
+    },
+    {
+      "expression": {
+        "endPosition": "1109",
+        "kind": "ERROR",
+        "startPosition": "1108"
+      },
+      "endPosition": "1109",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1108"
+    },
+    {
+      "expression": {
+        "endPosition": "1122",
+        "kind": "ERROR",
+        "startPosition": "1121"
+      },
+      "endPosition": "1122",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1121"
+    }
+  ],
+  "sourceName": "parsernegativetests/illegallvalue.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/illegaloperator.js",
+  "code": "* (1093, 1)",
+  "columnNumber": "3",
+  "kind": "ERROR",
+  "position": "1093",
+  "message": "parsernegativetests/illegaloperator.js:29:3 Expected an operand but found *\nx ** y\n   ^",
+  "lineNumber": "29"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1096",
+        "kind": "ERROR",
+        "startPosition": "1093"
+      },
+      "endPosition": "1096",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1093"
+    }
+  ],
+  "sourceName": "parsernegativetests/illegaloperator.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/keywordident.js",
+  "code": "var (1094, 3)",
+  "columnNumber": "4",
+  "kind": "ERROR",
+  "position": "1094",
+  "message": "parsernegativetests/keywordident.js:29:4 Expected ident but found var\nvar var = 23;\n    ^",
+  "lineNumber": "29"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1103",
+        "kind": "ERROR",
+        "startPosition": "1094"
+      },
+      "endPosition": "1103",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1094"
+    },
+    {
+      "endPosition": "1115",
+      "kind": "VARIABLE",
+      "name": "x",
+      "startPosition": "1108",
+      "initializer": {
+        "endPosition": "1115",
+        "kind": "NUMBER_LITERAL",
+        "value": "223",
+        "startPosition": "1112"
+      }
+    }
+  ],
+  "sourceName": "parsernegativetests/keywordident.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/parenmissing.js",
+  "code": "; (1096, 1)",
+  "columnNumber": "6",
+  "kind": "ERROR",
+  "position": "1096",
+  "message": "parsernegativetests/parenmissing.js:29:6 Expected ) but found ;\n(1 + 2;\n      ^",
+  "lineNumber": "29"
+}
+,
+{
+  "fileName": "parsernegativetests/parenmissing.js",
+  "code": ") (1103, 1)",
+  "columnNumber": "5",
+  "kind": "ERROR",
+  "position": "1103",
+  "message": "parsernegativetests/parenmissing.js:30:5 Expected ; but found )\nx * y);\n     ^",
+  "lineNumber": "30"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1097",
+        "kind": "ERROR",
+        "startPosition": "1096"
+      },
+      "endPosition": "1097",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1096"
+    },
+    {
+      "expression": {
+        "leftOperand": {
+          "endPosition": "1099",
+          "kind": "IDENTIFIER",
+          "name": "x",
+          "startPosition": "1098"
+        },
+        "endPosition": "1103",
+        "kind": "MULTIPLY",
+        "rightOperand": {
+          "endPosition": "1103",
+          "kind": "IDENTIFIER",
+          "name": "y",
+          "startPosition": "1102"
+        },
+        "startPosition": "1098"
+      },
+      "endPosition": "1103",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1098"
+    },
+    {
+      "expression": {
+        "endPosition": "1105",
+        "kind": "ERROR",
+        "startPosition": "1103"
+      },
+      "endPosition": "1105",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1103"
+    }
+  ],
+  "sourceName": "parsernegativetests/parenmissing.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/repeatedproperty.js",
+  "code": "ident (1111, 3)",
+  "columnNumber": "21",
+  "kind": "ERROR",
+  "position": "1111",
+  "message": "parsernegativetests/repeatedproperty.js:29:21 Property \"foo\" already defined\nvar obj = { foo: 34, get foo() { return 'hello' } };\n                     ^",
+  "lineNumber": "29"
+}
+,
+{
+  "fileName": "parsernegativetests/repeatedproperty.js",
+  "code": "ident (1165, 3)",
+  "columnNumber": "22",
+  "kind": "ERROR",
+  "position": "1165",
+  "message": "parsernegativetests/repeatedproperty.js:30:22 Property \"foo\" already defined\nvar obj1 = { foo: 34, set foo(x) { } };\n                      ^",
+  "lineNumber": "30"
+}
+,
+{
+  "fileName": "parsernegativetests/repeatedproperty.js",
+  "code": "ident (1205, 3)",
+  "columnNumber": "22",
+  "kind": "ERROR",
+  "position": "1205",
+  "message": "parsernegativetests/repeatedproperty.js:31:22 Property \"foo\" already defined\nvar obj2 = { foo: 34, set foo(x) { } };\n                      ^",
+  "lineNumber": "31"
+}
+,
+{
+  "fileName": "parsernegativetests/repeatedproperty.js",
+  "code": "ident (1251, 3)",
+  "columnNumber": "28",
+  "kind": "ERROR",
+  "position": "1251",
+  "message": "parsernegativetests/repeatedproperty.js:32:28 Property \"bar\" already defined\nvar obj3 = { get bar() { }, get bar() {} };\n                            ^",
+  "lineNumber": "32"
+}
+,
+{
+  "fileName": "parsernegativetests/repeatedproperty.js",
+  "code": "ident (1296, 3)",
+  "columnNumber": "29",
+  "kind": "ERROR",
+  "position": "1296",
+  "message": "parsernegativetests/repeatedproperty.js:33:29 Property \"bar\" already defined\nvar obj4 = { set bar(x) { }, set bar(x) {} };\n                             ^",
+  "lineNumber": "33"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1141",
+        "kind": "ERROR",
+        "startPosition": "1140"
+      },
+      "endPosition": "1141",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1140"
+    },
+    {
+      "expression": {
+        "endPosition": "1181",
+        "kind": "ERROR",
+        "startPosition": "1180"
+      },
+      "endPosition": "1181",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1180"
+    },
+    {
+      "expression": {
+        "endPosition": "1221",
+        "kind": "ERROR",
+        "startPosition": "1220"
+      },
+      "endPosition": "1221",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1220"
+    },
+    {
+      "expression": {
+        "endPosition": "1265",
+        "kind": "ERROR",
+        "startPosition": "1264"
+      },
+      "endPosition": "1265",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1264"
+    },
+    {
+      "expression": {
+        "endPosition": "1311",
+        "kind": "ERROR",
+        "startPosition": "1310"
+      },
+      "endPosition": "1311",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1310"
+    }
+  ],
+  "sourceName": "parsernegativetests/repeatedproperty.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/strict_repeatedproperty.js",
+  "code": "ident (1126, 3)",
+  "columnNumber": "21",
+  "kind": "ERROR",
+  "position": "1126",
+  "message": "parsernegativetests/strict_repeatedproperty.js:31:21 Property \"foo\" already defined\nvar obj = { foo: 34, foo: 'hello' };\n                     ^",
+  "lineNumber": "31"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1101",
+        "kind": "STRING_LITERAL",
+        "value": "use strict",
+        "startPosition": "1091"
+      },
+      "endPosition": "1101",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1091"
+    },
+    {
+      "expression": {
+        "endPosition": "1140",
+        "kind": "ERROR",
+        "startPosition": "1139"
+      },
+      "endPosition": "1140",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1139"
+    }
+  ],
+  "sourceName": "parsernegativetests/strict_repeatedproperty.js",
+  "strict": "true",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/strict_repeatparam.js",
+  "code": "ident (1119, 1)",
+  "columnNumber": "14",
+  "kind": "ERROR",
+  "position": "1119",
+  "message": "parsernegativetests/strict_repeatparam.js:31:14 strict mode function cannot have duplicate parameter name \"x\"\nfunction func(x, x) {}\n              ^",
+  "lineNumber": "31"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1101",
+        "kind": "STRING_LITERAL",
+        "value": "use strict",
+        "startPosition": "1091"
+      },
+      "endPosition": "1101",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1091"
+    },
+    {
+      "expression": {
+        "endPosition": "1127",
+        "kind": "ERROR",
+        "startPosition": "1128"
+      },
+      "endPosition": "1127",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1128"
+    }
+  ],
+  "sourceName": "parsernegativetests/strict_repeatparam.js",
+  "strict": "true",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/strict_with.js",
+  "code": "with (1105, 4)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1105",
+  "message": "parsernegativetests/strict_with.js:31:0 \"with\" statement cannot be used in strict mode\nwith({}) {}\n^",
+  "lineNumber": "31"
+}
+,
+{
+  "fileName": "parsernegativetests/strict_with.js",
+  "code": ") (1112, 1)",
+  "columnNumber": "7",
+  "kind": "ERROR",
+  "position": "1112",
+  "message": "parsernegativetests/strict_with.js:31:7 Expected ; but found )\nwith({}) {}\n       ^",
+  "lineNumber": "31"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1101",
+        "kind": "STRING_LITERAL",
+        "value": "use strict",
+        "startPosition": "1091"
+      },
+      "endPosition": "1101",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1091"
+    },
+    {
+      "expression": {
+        "endPosition": "1112",
+        "kind": "ERROR",
+        "startPosition": "1109"
+      },
+      "endPosition": "1112",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1109"
+    },
+    {
+      "expression": {
+        "endPosition": "1116",
+        "kind": "ERROR",
+        "startPosition": "1112"
+      },
+      "endPosition": "1116",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1112"
+    }
+  ],
+  "sourceName": "parsernegativetests/strict_with.js",
+  "strict": "true",
+  "startPosition": "1090"
+}
+,
+{
+  "fileName": "parsernegativetests/toplevelreturn.js",
+  "code": "return (1090, 6)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1090",
+  "message": "parsernegativetests/toplevelreturn.js:29:0 Invalid return statement\nreturn;\n^",
+  "lineNumber": "29"
+}
+,
+{
+  "fileName": "parsernegativetests/toplevelreturn.js",
+  "code": "return (1098, 6)",
+  "columnNumber": "0",
+  "kind": "ERROR",
+  "position": "1098",
+  "message": "parsernegativetests/toplevelreturn.js:30:0 Invalid return statement\nreturn 23;\n^",
+  "lineNumber": "30"
+}
+,
+{
+  "endPosition": "1090",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "expression": {
+        "endPosition": "1097",
+        "kind": "ERROR",
+        "startPosition": "1090"
+      },
+      "endPosition": "1097",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1090"
+    },
+    {
+      "expression": {
+        "endPosition": "1108",
+        "kind": "ERROR",
+        "startPosition": "1098"
+      },
+      "endPosition": "1108",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1098"
+    }
+  ],
+  "sourceName": "parsernegativetests/toplevelreturn.js",
+  "strict": "false",
+  "startPosition": "1090"
+}
+,
+{
+  "endPosition": "1136",
+  "kind": "COMPILATION_UNIT",
+  "sourceElements": [
+    {
+      "endPosition": "1240",
+      "kind": "FUNCTION",
+      "name": "Parser",
+      "body": {
+        "endPosition": "1218",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "expression": {
+                "endPosition": "1217",
+                "kind": "FUNCTION_INVOCATION",
+                "functionSelect": {
+                  "identifier": "create",
+                  "expression": {
+                    "endPosition": "1208",
+                    "kind": "IDENTIFIER",
+                    "name": "Parser",
+                    "startPosition": "1202"
+                  },
+                  "endPosition": "1215",
+                  "kind": "MEMBER_SELECT",
+                  "startPosition": "1202"
+                },
+                "arguments": [],
+                "startPosition": "1202"
+              },
+              "endPosition": "1217",
+              "kind": "ASSIGNMENT",
+              "variable": {
+                "identifier": "_parser",
+                "expression": {
+                  "endPosition": "1191",
+                  "kind": "IDENTIFIER",
+                  "name": "this",
+                  "startPosition": "1187"
+                },
+                "endPosition": "1199",
+                "kind": "MEMBER_SELECT",
+                "startPosition": "1187"
+              },
+              "startPosition": "1187"
+            },
+            "endPosition": "1217",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "1187"
+          }
+        ],
+        "startPosition": "1154"
+      },
+      "strict": "false",
+      "startPosition": "1136",
+      "parameters": []
+    },
+    {
+      "endPosition": "3598",
+      "kind": "FUNCTION",
+      "name": "processFiles",
+      "body": {
+        "endPosition": "3555",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "endPosition": "2938",
+            "kind": "VARIABLE",
+            "name": "File",
+            "startPosition": "2906",
+            "initializer": {
+              "endPosition": "2938",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "identifier": "type",
+                "expression": {
+                  "endPosition": "2917",
+                  "kind": "IDENTIFIER",
+                  "name": "Java",
+                  "startPosition": "2913"
+                },
+                "endPosition": "2922",
+                "kind": "MEMBER_SELECT",
+                "startPosition": "2913"
+              },
+              "arguments": [
+                {
+                  "endPosition": "2936",
+                  "kind": "STRING_LITERAL",
+                  "value": "java.io.File",
+                  "startPosition": "2924"
+                }
+              ],
+              "startPosition": "2913"
+            }
+          },
+          {
+            "endPosition": "2993",
+            "kind": "VARIABLE",
+            "name": "files",
+            "startPosition": "2947",
+            "initializer": {
+              "endPosition": "2993",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "identifier": "listFiles",
+                "expression": {
+                  "constructorExpression": {
+                    "endPosition": "2981",
+                    "kind": "FUNCTION_INVOCATION",
+                    "functionSelect": {
+                      "endPosition": "2963",
+                      "kind": "IDENTIFIER",
+                      "name": "File",
+                      "startPosition": "2959"
+                    },
+                    "arguments": [
+                      {
+                        "leftOperand": {
+                          "endPosition": "2971",
+                          "kind": "IDENTIFIER",
+                          "name": "__DIR__",
+                          "startPosition": "2964"
+                        },
+                        "endPosition": "2980",
+                        "kind": "PLUS",
+                        "rightOperand": {
+                          "endPosition": "2980",
+                          "kind": "IDENTIFIER",
+                          "name": "subdir",
+                          "startPosition": "2974"
+                        },
+                        "startPosition": "2964"
+                      }
+                    ],
+                    "startPosition": "2959"
+                  },
+                  "endPosition": "2981",
+                  "kind": "NEW",
+                  "startPosition": "2955"
+                },
+                "endPosition": "2991",
+                "kind": "MEMBER_SELECT",
+                "startPosition": "2955"
+              },
+              "arguments": [],
+              "startPosition": "2955"
+            }
+          },
+          {
+            "expression": {
+              "endPosition": "3026",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "identifier": "sort",
+                "expression": {
+                  "identifier": "Arrays",
+                  "expression": {
+                    "identifier": "util",
+                    "expression": {
+                      "endPosition": "3002",
+                      "kind": "IDENTIFIER",
+                      "name": "java",
+                      "startPosition": "2998"
+                    },
+                    "endPosition": "3007",
+                    "kind": "MEMBER_SELECT",
+                    "startPosition": "2998"
+                  },
+                  "endPosition": "3014",
+                  "kind": "MEMBER_SELECT",
+                  "startPosition": "2998"
+                },
+                "endPosition": "3019",
+                "kind": "MEMBER_SELECT",
+                "startPosition": "2998"
+              },
+              "arguments": [
+                {
+                  "endPosition": "3025",
+                  "kind": "IDENTIFIER",
+                  "name": "files",
+                  "startPosition": "3020"
+                }
+              ],
+              "startPosition": "2998"
+            },
+            "endPosition": "3026",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "2998"
+          },
+          {
+            "endPosition": "3049",
+            "kind": "VARIABLE",
+            "name": "file",
+            "startPosition": "3045"
+          },
+          {
+            "expression": {
+              "endPosition": "3058",
+              "kind": "IDENTIFIER",
+              "name": "files",
+              "startPosition": "3053"
+            },
+            "endPosition": "3555",
+            "kind": "FOR_IN_LOOP",
+            "forEach": "true",
+            "variable": {
+              "endPosition": "3049",
+              "kind": "IDENTIFIER",
+              "name": "file",
+              "startPosition": "3045"
+            },
+            "statement": {
+              "endPosition": "3555",
+              "kind": "BLOCK",
+              "statements": [
+                {
+                  "condition": {
+                    "endPosition": "3098",
+                    "kind": "FUNCTION_INVOCATION",
+                    "functionSelect": {
+                      "identifier": "endsWith",
+                      "expression": {
+                        "identifier": "name",
+                        "expression": {
+                          "endPosition": "3077",
+                          "kind": "IDENTIFIER",
+                          "name": "file",
+                          "startPosition": "3073"
+                        },
+                        "endPosition": "3082",
+                        "kind": "MEMBER_SELECT",
+                        "startPosition": "3073"
+                      },
+                      "endPosition": "3091",
+                      "kind": "MEMBER_SELECT",
+                      "startPosition": "3073"
+                    },
+                    "arguments": [
+                      {
+                        "endPosition": "3096",
+                        "kind": "STRING_LITERAL",
+                        "value": ".js",
+                        "startPosition": "3093"
+                      }
+                    ],
+                    "startPosition": "3073"
+                  },
+                  "endPosition": "3550",
+                  "kind": "IF",
+                  "startPosition": "3069",
+                  "thenStatement": {
+                    "endPosition": "3550",
+                    "kind": "BLOCK",
+                    "statements": [
+                      {
+                        "endPosition": "3141",
+                        "kind": "VARIABLE",
+                        "name": "script",
+                        "startPosition": "3117",
+                        "initializer": {
+                          "endPosition": "3141",
+                          "kind": "FUNCTION_INVOCATION",
+                          "functionSelect": {
+                            "endPosition": "3135",
+                            "kind": "IDENTIFIER",
+                            "name": "readFully",
+                            "startPosition": "3126"
+                          },
+                          "arguments": [
+                            {
+                              "endPosition": "3140",
+                              "kind": "IDENTIFIER",
+                              "name": "file",
+                              "startPosition": "3136"
+                            }
+                          ],
+                          "startPosition": "3126"
+                        }
+                      },
+                      {
+                        "endPosition": "3179",
+                        "kind": "VARIABLE",
+                        "name": "parser",
+                        "startPosition": "3158",
+                        "initializer": {
+                          "constructorExpression": {
+                            "endPosition": "3179",
+                            "kind": "FUNCTION_INVOCATION",
+                            "functionSelect": {
+                              "endPosition": "3177",
+                              "kind": "IDENTIFIER",
+                              "name": "Parser",
+                              "startPosition": "3171"
+                            },
+                            "arguments": [],
+                            "startPosition": "3171"
+                          },
+                          "endPosition": "3179",
+                          "kind": "NEW",
+                          "startPosition": "3167"
+                        }
+                      },
+                      {
+                        "endPosition": "3415",
+                        "kind": "VARIABLE",
+                        "name": "tree",
+                        "startPosition": "3196",
+                        "initializer": {
+                          "endPosition": "3415",
+                          "kind": "FUNCTION_INVOCATION",
+                          "functionSelect": {
+                            "identifier": "parse",
+                            "expression": {
+                              "endPosition": "3209",
+                              "kind": "IDENTIFIER",
+                              "name": "parser",
+                              "startPosition": "3203"
+                            },
+                            "endPosition": "3215",
+                            "kind": "MEMBER_SELECT",
+                            "startPosition": "3203"
+                          },
+                          "arguments": [
+                            {
+                              "leftOperand": {
+                                "leftOperand": {
+                                  "endPosition": "3222",
+                                  "kind": "IDENTIFIER",
+                                  "name": "subdir",
+                                  "startPosition": "3216"
+                                },
+                                "endPosition": "3227",
+                                "kind": "PLUS",
+                                "rightOperand": {
+                                  "endPosition": "3227",
+                                  "kind": "STRING_LITERAL",
+                                  "value": "/",
+                                  "startPosition": "3226"
+                                },
+                                "startPosition": "3216"
+                              },
+                              "endPosition": "3240",
+                              "kind": "PLUS",
+                              "rightOperand": {
+                                "identifier": "name",
+                                "expression": {
+                                  "endPosition": "3235",
+                                  "kind": "IDENTIFIER",
+                                  "name": "file",
+                                  "startPosition": "3231"
+                                },
+                                "endPosition": "3240",
+                                "kind": "MEMBER_SELECT",
+                                "startPosition": "3231"
+                              },
+                              "startPosition": "3216"
+                            },
+                            {
+                              "endPosition": "3248",
+                              "kind": "IDENTIFIER",
+                              "name": "script",
+                              "startPosition": "3242"
+                            },
+                            {
+                              "endPosition": "3286",
+                              "kind": "FUNCTION_EXPRESSION",
+                              "body": {
+                                "endPosition": "3397",
+                                "kind": "BLOCK",
+                                "statements": [
+                                  {
+                                    "expression": {
+                                      "endPosition": "3365",
+                                      "kind": "FUNCTION_INVOCATION",
+                                      "functionSelect": {
+                                        "endPosition": "3312",
+                                        "kind": "IDENTIFIER",
+                                        "name": "print",
+                                        "startPosition": "3307"
+                                      },
+                                      "arguments": [
+                                        {
+                                          "endPosition": "3364",
+                                          "kind": "FUNCTION_INVOCATION",
+                                          "functionSelect": {
+                                            "identifier": "stringify",
+                                            "expression": {
+                                              "endPosition": "3317",
+                                              "kind": "IDENTIFIER",
+                                              "name": "JSON",
+                                              "startPosition": "3313"
+                                            },
+                                            "endPosition": "3327",
+                                            "kind": "MEMBER_SELECT",
+                                            "startPosition": "3313"
+                                          },
+                                          "arguments": [
+                                            {
+                                              "endPosition": "3354",
+                                              "kind": "FUNCTION_INVOCATION",
+                                              "functionSelect": {
+                                                "identifier": "convert",
+                                                "expression": {
+                                                  "endPosition": "3334",
+                                                  "kind": "IDENTIFIER",
+                                                  "name": "parser",
+                                                  "startPosition": "3328"
+                                                },
+                                                "endPosition": "3342",
+                                                "kind": "MEMBER_SELECT",
+                                                "startPosition": "3328"
+                                              },
+                                              "arguments": [
+                                                {
+                                                  "endPosition": "3353",
+                                                  "kind": "IDENTIFIER",
+                                                  "name": "diagnostic",
+                                                  "startPosition": "3343"
+                                                }
+                                              ],
+                                              "startPosition": "3328"
+                                            },
+                                            {
+                                              "endPosition": "3360",
+                                              "kind": "NULL_LITERAL",
+                                              "startPosition": "3356"
+                                            },
+                                            {
+                                              "endPosition": "3363",
+                                              "kind": "NUMBER_LITERAL",
+                                              "value": "2",
+                                              "startPosition": "3362"
+                                            }
+                                          ],
+                                          "startPosition": "3313"
+                                        }
+                                      ],
+                                      "startPosition": "3307"
+                                    },
+                                    "endPosition": "3365",
+                                    "kind": "EXPRESSION_STATEMENT",
+                                    "startPosition": "3307"
+                                  },
+                                  {
+                                    "expression": {
+                                      "endPosition": "3396",
+                                      "kind": "FUNCTION_INVOCATION",
+                                      "functionSelect": {
+                                        "endPosition": "3391",
+                                        "kind": "IDENTIFIER",
+                                        "name": "print",
+                                        "startPosition": "3386"
+                                      },
+                                      "arguments": [
+                                        {
+                                          "endPosition": "3394",
+                                          "kind": "STRING_LITERAL",
+                                          "value": ",",
+                                          "startPosition": "3393"
+                                        }
+                                      ],
+                                      "startPosition": "3386"
+                                    },
+                                    "endPosition": "3396",
+                                    "kind": "EXPRESSION_STATEMENT",
+                                    "startPosition": "3386"
+                                  }
+                                ],
+                                "startPosition": "3286"
+                              },
+                              "strict": "false",
+                              "startPosition": "3286",
+                              "parameters": [
+                                {
+                                  "endPosition": "3284",
+                                  "kind": "IDENTIFIER",
+                                  "name": "diagnostic",
+                                  "startPosition": "3274"
+                                }
+                              ]
+                            }
+                          ],
+                          "startPosition": "3203"
+                        }
+                      },
+                      {
+                        "condition": {
+                          "leftOperand": {
+                            "endPosition": "3437",
+                            "kind": "IDENTIFIER",
+                            "name": "tree",
+                            "startPosition": "3433"
+                          },
+                          "endPosition": "3445",
+                          "kind": "NOT_EQUAL_TO",
+                          "rightOperand": {
+                            "endPosition": "3445",
+                            "kind": "NULL_LITERAL",
+                            "startPosition": "3441"
+                          },
+                          "startPosition": "3433"
+                        },
+                        "endPosition": "3541",
+                        "kind": "IF",
+                        "startPosition": "3429",
+                        "thenStatement": {
+                          "endPosition": "3541",
+                          "kind": "BLOCK",
+                          "statements": [
+                            {
+                              "expression": {
+                                "endPosition": "3500",
+                                "kind": "FUNCTION_INVOCATION",
+                                "functionSelect": {
+                                  "endPosition": "3469",
+                                  "kind": "IDENTIFIER",
+                                  "name": "print",
+                                  "startPosition": "3464"
+                                },
+                                "arguments": [
+                                  {
+                                    "endPosition": "3499",
+                                    "kind": "FUNCTION_INVOCATION",
+                                    "functionSelect": {
+                                      "identifier": "stringify",
+                                      "expression": {
+                                        "endPosition": "3474",
+                                        "kind": "IDENTIFIER",
+                                        "name": "JSON",
+                                        "startPosition": "3470"
+                                      },
+                                      "endPosition": "3484",
+                                      "kind": "MEMBER_SELECT",
+                                      "startPosition": "3470"
+                                    },
+                                    "arguments": [
+                                      {
+                                        "endPosition": "3489",
+                                        "kind": "IDENTIFIER",
+                                        "name": "tree",
+                                        "startPosition": "3485"
+                                      },
+                                      {
+                                        "endPosition": "3495",
+                                        "kind": "NULL_LITERAL",
+                                        "startPosition": "3491"
+                                      },
+                                      {
+                                        "endPosition": "3498",
+                                        "kind": "NUMBER_LITERAL",
+                                        "value": "2",
+                                        "startPosition": "3497"
+                                      }
+                                    ],
+                                    "startPosition": "3470"
+                                  }
+                                ],
+                                "startPosition": "3464"
+                              },
+                              "endPosition": "3500",
+                              "kind": "EXPRESSION_STATEMENT",
+                              "startPosition": "3464"
+                            },
+                            {
+                              "expression": {
+                                "endPosition": "3527",
+                                "kind": "FUNCTION_INVOCATION",
+                                "functionSelect": {
+                                  "endPosition": "3522",
+                                  "kind": "IDENTIFIER",
+                                  "name": "print",
+                                  "startPosition": "3517"
+                                },
+                                "arguments": [
+                                  {
+                                    "endPosition": "3525",
+                                    "kind": "STRING_LITERAL",
+                                    "value": ",",
+                                    "startPosition": "3524"
+                                  }
+                                ],
+                                "startPosition": "3517"
+                              },
+                              "endPosition": "3527",
+                              "kind": "EXPRESSION_STATEMENT",
+                              "startPosition": "3517"
+                            }
+                          ],
+                          "startPosition": "3447"
+                        }
+                      }
+                    ],
+                    "startPosition": "3100"
+                  }
+                }
+              ],
+              "startPosition": "3060"
+            },
+            "startPosition": "3031"
+          }
+        ],
+        "startPosition": "2897"
+      },
+      "strict": "false",
+      "startPosition": "2867",
+      "parameters": [
+        {
+          "endPosition": "2895",
+          "kind": "IDENTIFIER",
+          "name": "subdir",
+          "startPosition": "2889"
+        }
+      ]
+    },
+    {
+      "endPosition": "3901",
+      "kind": "FUNCTION",
+      "name": "main",
+      "body": {
+        "endPosition": "3899",
+        "kind": "BLOCK",
+        "statements": [
+          {
+            "expression": {
+              "endPosition": "3631",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "3626",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "3621"
+              },
+              "arguments": [
+                {
+                  "endPosition": "3629",
+                  "kind": "STRING_LITERAL",
+                  "value": "[",
+                  "startPosition": "3628"
+                }
+              ],
+              "startPosition": "3621"
+            },
+            "endPosition": "3631",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "3621"
+          },
+          {
+            "expression": {
+              "endPosition": "3665",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "3650",
+                "kind": "IDENTIFIER",
+                "name": "processFiles",
+                "startPosition": "3638"
+              },
+              "arguments": [
+                {
+                  "endPosition": "3663",
+                  "kind": "STRING_LITERAL",
+                  "value": "parsertests",
+                  "startPosition": "3652"
+                }
+              ],
+              "startPosition": "3638"
+            },
+            "endPosition": "3665",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "3638"
+          },
+          {
+            "expression": {
+              "endPosition": "3706",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "3683",
+                "kind": "IDENTIFIER",
+                "name": "processFiles",
+                "startPosition": "3671"
+              },
+              "arguments": [
+                {
+                  "endPosition": "3704",
+                  "kind": "STRING_LITERAL",
+                  "value": "parsernegativetests",
+                  "startPosition": "3685"
+                }
+              ],
+              "startPosition": "3671"
+            },
+            "endPosition": "3706",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "3671"
+          },
+          {
+            "endPosition": "3775",
+            "kind": "VARIABLE",
+            "name": "script",
+            "startPosition": "3747",
+            "initializer": {
+              "endPosition": "3775",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "3765",
+                "kind": "IDENTIFIER",
+                "name": "readFully",
+                "startPosition": "3756"
+              },
+              "arguments": [
+                {
+                  "endPosition": "3774",
+                  "kind": "IDENTIFIER",
+                  "name": "__FILE__",
+                  "startPosition": "3766"
+                }
+              ],
+              "startPosition": "3756"
+            }
+          },
+          {
+            "endPosition": "3840",
+            "kind": "VARIABLE",
+            "name": "tree",
+            "startPosition": "3785",
+            "initializer": {
+              "endPosition": "3840",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "identifier": "parse",
+                "expression": {
+                  "constructorExpression": {
+                    "endPosition": "3804",
+                    "kind": "FUNCTION_INVOCATION",
+                    "functionSelect": {
+                      "endPosition": "3802",
+                      "kind": "IDENTIFIER",
+                      "name": "Parser",
+                      "startPosition": "3796"
+                    },
+                    "arguments": [],
+                    "startPosition": "3796"
+                  },
+                  "endPosition": "3804",
+                  "kind": "NEW",
+                  "startPosition": "3792"
+                },
+                "endPosition": "3810",
+                "kind": "MEMBER_SELECT",
+                "startPosition": "3792"
+              },
+              "arguments": [
+                {
+                  "endPosition": "3824",
+                  "kind": "STRING_LITERAL",
+                  "value": "parserapi.js",
+                  "startPosition": "3812"
+                },
+                {
+                  "endPosition": "3833",
+                  "kind": "IDENTIFIER",
+                  "name": "script",
+                  "startPosition": "3827"
+                },
+                {
+                  "endPosition": "3839",
+                  "kind": "NULL_LITERAL",
+                  "startPosition": "3835"
+                }
+              ],
+              "startPosition": "3792"
+            }
+          },
+          {
+            "expression": {
+              "endPosition": "3882",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "3851",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "3846"
+              },
+              "arguments": [
+                {
+                  "endPosition": "3881",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "identifier": "stringify",
+                    "expression": {
+                      "endPosition": "3856",
+                      "kind": "IDENTIFIER",
+                      "name": "JSON",
+                      "startPosition": "3852"
+                    },
+                    "endPosition": "3866",
+                    "kind": "MEMBER_SELECT",
+                    "startPosition": "3852"
+                  },
+                  "arguments": [
+                    {
+                      "endPosition": "3871",
+                      "kind": "IDENTIFIER",
+                      "name": "tree",
+                      "startPosition": "3867"
+                    },
+                    {
+                      "endPosition": "3877",
+                      "kind": "NULL_LITERAL",
+                      "startPosition": "3873"
+                    },
+                    {
+                      "endPosition": "3880",
+                      "kind": "NUMBER_LITERAL",
+                      "value": "2",
+                      "startPosition": "3879"
+                    }
+                  ],
+                  "startPosition": "3852"
+                }
+              ],
+              "startPosition": "3846"
+            },
+            "endPosition": "3882",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "3846"
+          },
+          {
+            "expression": {
+              "endPosition": "3898",
+              "kind": "FUNCTION_INVOCATION",
+              "functionSelect": {
+                "endPosition": "3893",
+                "kind": "IDENTIFIER",
+                "name": "print",
+                "startPosition": "3888"
+              },
+              "arguments": [
+                {
+                  "endPosition": "3896",
+                  "kind": "STRING_LITERAL",
+                  "value": "]",
+                  "startPosition": "3895"
+                }
+              ],
+              "startPosition": "3888"
+            },
+            "endPosition": "3898",
+            "kind": "EXPRESSION_STATEMENT",
+            "startPosition": "3888"
+          }
+        ],
+        "startPosition": "3615"
+      },
+      "strict": "false",
+      "startPosition": "3599",
+      "parameters": []
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1305",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "identifier": "type",
+            "expression": {
+              "endPosition": "1265",
+              "kind": "IDENTIFIER",
+              "name": "Java",
+              "startPosition": "1261"
+            },
+            "endPosition": "1270",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1261"
+          },
+          "arguments": [
+            {
+              "endPosition": "1303",
+              "kind": "STRING_LITERAL",
+              "value": "jdk.nashorn.api.tree.Diagnostic",
+              "startPosition": "1272"
+            }
+          ],
+          "startPosition": "1261"
+        },
+        "endPosition": "1305",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "identifier": "Diagnostic",
+          "expression": {
+            "endPosition": "1247",
+            "kind": "IDENTIFIER",
+            "name": "Parser",
+            "startPosition": "1241"
+          },
+          "endPosition": "1258",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1241"
+        },
+        "startPosition": "1241"
+      },
+      "endPosition": "1305",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1241"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1390",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "identifier": "type",
+            "expression": {
+              "endPosition": "1338",
+              "kind": "IDENTIFIER",
+              "name": "Java",
+              "startPosition": "1334"
+            },
+            "endPosition": "1343",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1334"
+          },
+          "arguments": [
+            {
+              "endPosition": "1388",
+              "kind": "STRING_LITERAL",
+              "value": "jdk.nashorn.api.tree.SimpleTreeVisitorES5_1",
+              "startPosition": "1345"
+            }
+          ],
+          "startPosition": "1334"
+        },
+        "endPosition": "1390",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "identifier": "SimpleTreeVisitor",
+          "expression": {
+            "endPosition": "1313",
+            "kind": "IDENTIFIER",
+            "name": "Parser",
+            "startPosition": "1307"
+          },
+          "endPosition": "1331",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1307"
+        },
+        "startPosition": "1307"
+      },
+      "endPosition": "1390",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1307"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1444",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "identifier": "type",
+            "expression": {
+              "endPosition": "1410",
+              "kind": "IDENTIFIER",
+              "name": "Java",
+              "startPosition": "1406"
+            },
+            "endPosition": "1415",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1406"
+          },
+          "arguments": [
+            {
+              "endPosition": "1442",
+              "kind": "STRING_LITERAL",
+              "value": "jdk.nashorn.api.tree.Tree",
+              "startPosition": "1417"
+            }
+          ],
+          "startPosition": "1406"
+        },
+        "endPosition": "1444",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "identifier": "Tree",
+          "expression": {
+            "endPosition": "1398",
+            "kind": "IDENTIFIER",
+            "name": "Parser",
+            "startPosition": "1392"
+          },
+          "endPosition": "1403",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1392"
+        },
+        "startPosition": "1392"
+      },
+      "endPosition": "1444",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1392"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1487",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "identifier": "type",
+            "expression": {
+              "endPosition": "1464",
+              "kind": "IDENTIFIER",
+              "name": "Java",
+              "startPosition": "1460"
+            },
+            "endPosition": "1469",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1460"
+          },
+          "arguments": [
+            {
+              "endPosition": "1485",
+              "kind": "STRING_LITERAL",
+              "value": "java.util.List",
+              "startPosition": "1471"
+            }
+          ],
+          "startPosition": "1460"
+        },
+        "endPosition": "1487",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "identifier": "List",
+          "expression": {
+            "endPosition": "1452",
+            "kind": "IDENTIFIER",
+            "name": "Parser",
+            "startPosition": "1446"
+          },
+          "endPosition": "1457",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1446"
+        },
+        "startPosition": "1446"
+      },
+      "endPosition": "1487",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1446"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1530",
+          "kind": "FUNCTION_INVOCATION",
+          "functionSelect": {
+            "identifier": "type",
+            "expression": {
+              "endPosition": "1507",
+              "kind": "IDENTIFIER",
+              "name": "Java",
+              "startPosition": "1503"
+            },
+            "endPosition": "1512",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1503"
+          },
+          "arguments": [
+            {
+              "endPosition": "1528",
+              "kind": "STRING_LITERAL",
+              "value": "java.lang.Enum",
+              "startPosition": "1514"
+            }
+          ],
+          "startPosition": "1503"
+        },
+        "endPosition": "1530",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "identifier": "Enum",
+          "expression": {
+            "endPosition": "1495",
+            "kind": "IDENTIFIER",
+            "name": "Parser",
+            "startPosition": "1489"
+          },
+          "endPosition": "1500",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1489"
+        },
+        "startPosition": "1489"
+      },
+      "endPosition": "1530",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1489"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1657",
+          "kind": "FUNCTION_EXPRESSION",
+          "body": {
+            "endPosition": "1803",
+            "kind": "BLOCK",
+            "statements": [
+              {
+                "endPosition": "1716",
+                "kind": "VARIABLE",
+                "name": "tree",
+                "startPosition": "1667",
+                "initializer": {
+                  "endPosition": "1716",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "identifier": "parse",
+                    "expression": {
+                      "identifier": "_parser",
+                      "expression": {
+                        "endPosition": "1678",
+                        "kind": "IDENTIFIER",
+                        "name": "this",
+                        "startPosition": "1674"
+                      },
+                      "endPosition": "1686",
+                      "kind": "MEMBER_SELECT",
+                      "startPosition": "1674"
+                    },
+                    "endPosition": "1692",
+                    "kind": "MEMBER_SELECT",
+                    "startPosition": "1674"
+                  },
+                  "arguments": [
+                    {
+                      "endPosition": "1697",
+                      "kind": "IDENTIFIER",
+                      "name": "name",
+                      "startPosition": "1693"
+                    },
+                    {
+                      "endPosition": "1705",
+                      "kind": "IDENTIFIER",
+                      "name": "script",
+                      "startPosition": "1699"
+                    },
+                    {
+                      "endPosition": "1715",
+                      "kind": "IDENTIFIER",
+                      "name": "listener",
+                      "startPosition": "1707"
+                    }
+                  ],
+                  "startPosition": "1674"
+                }
+              },
+              {
+                "expression": {
+                  "endPosition": "1771",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "identifier": "accept",
+                    "expression": {
+                      "endPosition": "1726",
+                      "kind": "IDENTIFIER",
+                      "name": "tree",
+                      "startPosition": "1722"
+                    },
+                    "endPosition": "1733",
+                    "kind": "MEMBER_SELECT",
+                    "startPosition": "1722"
+                  },
+                  "arguments": [
+                    {
+                      "constructorExpression": {
+                        "endPosition": "1764",
+                        "kind": "FUNCTION_INVOCATION",
+                        "functionSelect": {
+                          "identifier": "SimpleTreeVisitor",
+                          "expression": {
+                            "endPosition": "1744",
+                            "kind": "IDENTIFIER",
+                            "name": "Parser",
+                            "startPosition": "1738"
+                          },
+                          "endPosition": "1762",
+                          "kind": "MEMBER_SELECT",
+                          "startPosition": "1738"
+                        },
+                        "arguments": [],
+                        "startPosition": "1744"
+                      },
+                      "endPosition": "1764",
+                      "kind": "NEW",
+                      "startPosition": "1734"
+                    },
+                    {
+                      "endPosition": "1770",
+                      "kind": "NULL_LITERAL",
+                      "startPosition": "1766"
+                    }
+                  ],
+                  "startPosition": "1722"
+                },
+                "endPosition": "1771",
+                "kind": "EXPRESSION_STATEMENT",
+                "startPosition": "1722"
+              },
+              {
+                "expression": {
+                  "endPosition": "1802",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "identifier": "convert",
+                    "expression": {
+                      "endPosition": "1788",
+                      "kind": "IDENTIFIER",
+                      "name": "this",
+                      "startPosition": "1784"
+                    },
+                    "endPosition": "1796",
+                    "kind": "MEMBER_SELECT",
+                    "startPosition": "1784"
+                  },
+                  "arguments": [
+                    {
+                      "endPosition": "1801",
+                      "kind": "IDENTIFIER",
+                      "name": "tree",
+                      "startPosition": "1797"
+                    }
+                  ],
+                  "startPosition": "1784"
+                },
+                "endPosition": "1803",
+                "kind": "RETURN",
+                "startPosition": "1777"
+              }
+            ],
+            "startPosition": "1657"
+          },
+          "strict": "false",
+          "startPosition": "1657",
+          "parameters": [
+            {
+              "endPosition": "1637",
+              "kind": "IDENTIFIER",
+              "name": "name",
+              "startPosition": "1633"
+            },
+            {
+              "endPosition": "1645",
+              "kind": "IDENTIFIER",
+              "name": "script",
+              "startPosition": "1639"
+            },
+            {
+              "endPosition": "1655",
+              "kind": "IDENTIFIER",
+              "name": "listener",
+              "startPosition": "1647"
+            }
+          ]
+        },
+        "endPosition": "1657",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "identifier": "parse",
+          "expression": {
+            "identifier": "prototype",
+            "expression": {
+              "endPosition": "1605",
+              "kind": "IDENTIFIER",
+              "name": "Parser",
+              "startPosition": "1599"
+            },
+            "endPosition": "1615",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1599"
+          },
+          "endPosition": "1621",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1599"
+        },
+        "startPosition": "1599"
+      },
+      "endPosition": "1805",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1599"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "1834",
+          "kind": "FUNCTION_EXPRESSION",
+          "body": {
+            "endPosition": "1897",
+            "kind": "BLOCK",
+            "statements": [
+              {
+                "expression": {
+                  "endPosition": "1896",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "identifier": "create",
+                    "expression": {
+                      "endPosition": "1887",
+                      "kind": "FUNCTION_INVOCATION",
+                      "functionSelect": {
+                        "identifier": "type",
+                        "expression": {
+                          "endPosition": "1851",
+                          "kind": "IDENTIFIER",
+                          "name": "Java",
+                          "startPosition": "1847"
+                        },
+                        "endPosition": "1856",
+                        "kind": "MEMBER_SELECT",
+                        "startPosition": "1847"
+                      },
+                      "arguments": [
+                        {
+                          "endPosition": "1885",
+                          "kind": "STRING_LITERAL",
+                          "value": "jdk.nashorn.api.tree.Parser",
+                          "startPosition": "1858"
+                        }
+                      ],
+                      "startPosition": "1847"
+                    },
+                    "endPosition": "1894",
+                    "kind": "MEMBER_SELECT",
+                    "startPosition": "1847"
+                  },
+                  "arguments": [],
+                  "startPosition": "1894"
+                },
+                "endPosition": "1897",
+                "kind": "RETURN",
+                "startPosition": "1840"
+              }
+            ],
+            "startPosition": "1834"
+          },
+          "strict": "false",
+          "startPosition": "1834",
+          "parameters": []
+        },
+        "endPosition": "1834",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "identifier": "create",
+          "expression": {
+            "endPosition": "1813",
+            "kind": "IDENTIFIER",
+            "name": "Parser",
+            "startPosition": "1807"
+          },
+          "endPosition": "1820",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1807"
+        },
+        "startPosition": "1807"
+      },
+      "endPosition": "1971",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1807"
+    },
+    {
+      "expression": {
+        "expression": {
+          "endPosition": "2014",
+          "kind": "FUNCTION_EXPRESSION",
+          "body": {
+            "endPosition": "2863",
+            "kind": "BLOCK",
+            "statements": [
+              {
+                "condition": {
+                  "leftOperand": {
+                    "expression": {
+                      "endPosition": "2029",
+                      "kind": "IDENTIFIER",
+                      "name": "tree",
+                      "startPosition": "2025"
+                    },
+                    "endPosition": "2029",
+                    "kind": "LOGICAL_COMPLEMENT",
+                    "startPosition": "2024"
+                  },
+                  "endPosition": "2055",
+                  "kind": "CONDITIONAL_OR",
+                  "rightOperand": {
+                    "leftOperand": {
+                      "expression": {
+                        "endPosition": "2044",
+                        "kind": "IDENTIFIER",
+                        "name": "tree",
+                        "startPosition": "2040"
+                      },
+                      "endPosition": "2044",
+                      "kind": "TYPEOF",
+                      "startPosition": "2033"
+                    },
+                    "endPosition": "2055",
+                    "kind": "NOT_EQUAL_TO",
+                    "rightOperand": {
+                      "endPosition": "2055",
+                      "kind": "STRING_LITERAL",
+                      "value": "object",
+                      "startPosition": "2049"
+                    },
+                    "startPosition": "2033"
+                  },
+                  "startPosition": "2024"
+                },
+                "endPosition": "2086",
+                "kind": "IF",
+                "startPosition": "2020",
+                "thenStatement": {
+                  "endPosition": "2086",
+                  "kind": "BLOCK",
+                  "statements": [
+                    {
+                      "expression": {
+                        "endPosition": "2079",
+                        "kind": "IDENTIFIER",
+                        "name": "tree",
+                        "startPosition": "2075"
+                      },
+                      "endPosition": "2080",
+                      "kind": "RETURN",
+                      "startPosition": "2068"
+                    }
+                  ],
+                  "startPosition": "2058"
+                }
+              },
+              {
+                "endPosition": "2133",
+                "kind": "VARIABLE",
+                "name": "obj",
+                "startPosition": "2096",
+                "initializer": {
+                  "endPosition": "2133",
+                  "kind": "FUNCTION_INVOCATION",
+                  "functionSelect": {
+                    "identifier": "bindProperties",
+                    "expression": {
+                      "endPosition": "2108",
+                      "kind": "IDENTIFIER",
+                      "name": "Object",
+                      "startPosition": "2102"
+                    },
+                    "endPosition": "2123",
+                    "kind": "MEMBER_SELECT",
+                    "startPosition": "2102"
+                  },
+                  "arguments": [
+                    {
+                      "endPosition": "2126",
+                      "kind": "OBJECT_LITERAL",
+                      "startPosition": "2124",
+                      "properties": []
+                    },
+                    {
+                      "endPosition": "2132",
+                      "kind": "IDENTIFIER",
+                      "name": "tree",
+                      "startPosition": "2128"
+                    }
+                  ],
+                  "startPosition": "2102"
+                }
+              },
+              {
+                "endPosition": "2154",
+                "kind": "VARIABLE",
+                "name": "result",
+                "startPosition": "2143",
+                "initializer": {
+                  "endPosition": "2154",
+                  "kind": "OBJECT_LITERAL",
+                  "startPosition": "2152",
+                  "properties": []
+                }
+              },
+              {
+                "endPosition": "2170",
+                "kind": "VARIABLE",
+                "name": "i",
+                "startPosition": "2169"
+              },
+              {
+                "expression": {
+                  "endPosition": "2177",
+                  "kind": "IDENTIFIER",
+                  "name": "obj",
+                  "startPosition": "2174"
+                },
+                "endPosition": "2845",
+                "kind": "FOR_IN_LOOP",
+                "forEach": "false",
+                "variable": {
+                  "endPosition": "2170",
+                  "kind": "IDENTIFIER",
+                  "name": "i",
+                  "startPosition": "2169"
+                },
+                "statement": {
+                  "endPosition": "2845",
+                  "kind": "BLOCK",
+                  "statements": [
+                    {
+                      "endPosition": "2204",
+                      "kind": "VARIABLE",
+                      "name": "val",
+                      "startPosition": "2192",
+                      "initializer": {
+                        "expression": {
+                          "endPosition": "2201",
+                          "kind": "IDENTIFIER",
+                          "name": "obj",
+                          "startPosition": "2198"
+                        },
+                        "endPosition": "2204",
+                        "kind": "ARRAY_ACCESS",
+                        "index": {
+                          "endPosition": "2203",
+                          "kind": "IDENTIFIER",
+                          "name": "i",
+                          "startPosition": "2202"
+                        },
+                        "startPosition": "2198"
+                      }
+                    },
+                    {
+                      "condition": {
+                        "leftOperand": {
+                          "endPosition": "2220",
+                          "kind": "IDENTIFIER",
+                          "name": "val",
+                          "startPosition": "2217"
+                        },
+                        "expression": {
+                          "endPosition": "2220",
+                          "kind": "IDENTIFIER",
+                          "name": "val",
+                          "startPosition": "2217"
+                        },
+                        "endPosition": "2243",
+                        "kind": "INSTANCE_OF",
+                        "rightOperand": {
+                          "identifier": "Tree",
+                          "expression": {
+                            "endPosition": "2238",
+                            "kind": "IDENTIFIER",
+                            "name": "Parser",
+                            "startPosition": "2232"
+                          },
+                          "endPosition": "2243",
+                          "kind": "MEMBER_SELECT",
+                          "startPosition": "2232"
+                        },
+                        "type": {
+                          "identifier": "Tree",
+                          "expression": {
+                            "endPosition": "2238",
+                            "kind": "IDENTIFIER",
+                            "name": "Parser",
+                            "startPosition": "2232"
+                          },
+                          "endPosition": "2243",
+                          "kind": "MEMBER_SELECT",
+                          "startPosition": "2232"
+                        },
+                        "startPosition": "2217"
+                      },
+                      "elseStatement": {
+                        "condition": {
+                          "leftOperand": {
+                            "endPosition": "2309",
+                            "kind": "IDENTIFIER",
+                            "name": "val",
+                            "startPosition": "2306"
+                          },
+                          "expression": {
+                            "endPosition": "2309",
+                            "kind": "IDENTIFIER",
+                            "name": "val",
+                            "startPosition": "2306"
+                          },
+                          "endPosition": "2332",
+                          "kind": "INSTANCE_OF",
+                          "rightOperand": {
+                            "identifier": "List",
+                            "expression": {
+                              "endPosition": "2327",
+                              "kind": "IDENTIFIER",
+                              "name": "Parser",
+                              "startPosition": "2321"
+                            },
+                            "endPosition": "2332",
+                            "kind": "MEMBER_SELECT",
+                            "startPosition": "2321"
+                          },
+                          "type": {
+                            "identifier": "List",
+                            "expression": {
+                              "endPosition": "2327",
+                              "kind": "IDENTIFIER",
+                              "name": "Parser",
+                              "startPosition": "2321"
+                            },
+                            "endPosition": "2332",
+                            "kind": "MEMBER_SELECT",
+                            "startPosition": "2321"
+                          },
+                          "startPosition": "2306"
+                        },
+                        "elseStatement": {
+                          "endPosition": "2840",
+                          "kind": "BLOCK",
+                          "statements": [
+                            {
+                              "cases": [
+                                {
+                                  "expression": {
+                                    "endPosition": "2574",
+                                    "kind": "STRING_LITERAL",
+                                    "value": "number",
+                                    "startPosition": "2568"
+                                  },
+                                  "endPosition": "2576",
+                                  "kind": "CASE",
+                                  "statements": [],
+                                  "startPosition": "2562"
+                                },
+                                {
+                                  "expression": {
+                                    "endPosition": "2603",
+                                    "kind": "STRING_LITERAL",
+                                    "value": "string",
+                                    "startPosition": "2597"
+                                  },
+                                  "endPosition": "2605",
+                                  "kind": "CASE",
+                                  "statements": [],
+                                  "startPosition": "2591"
+                                },
+                                {
+                                  "expression": {
+                                    "endPosition": "2633",
+                                    "kind": "STRING_LITERAL",
+                                    "value": "boolean",
+                                    "startPosition": "2626"
+                                  },
+                                  "endPosition": "2678",
+                                  "kind": "CASE",
+                                  "statements": [
+                                    {
+                                      "expression": {
+                                        "expression": {
+                                          "endPosition": "2677",
+                                          "kind": "FUNCTION_INVOCATION",
+                                          "functionSelect": {
+                                            "endPosition": "2672",
+                                            "kind": "IDENTIFIER",
+                                            "name": "String",
+                                            "startPosition": "2666"
+                                          },
+                                          "arguments": [
+                                            {
+                                              "endPosition": "2676",
+                                              "kind": "IDENTIFIER",
+                                              "name": "val",
+                                              "startPosition": "2673"
+                                            }
+                                          ],
+                                          "startPosition": "2666"
+                                        },
+                                        "endPosition": "2677",
+                                        "kind": "ASSIGNMENT",
+                                        "variable": {
+                                          "expression": {
+                                            "endPosition": "2660",
+                                            "kind": "IDENTIFIER",
+                                            "name": "result",
+                                            "startPosition": "2654"
+                                          },
+                                          "endPosition": "2663",
+                                          "kind": "ARRAY_ACCESS",
+                                          "index": {
+                                            "endPosition": "2662",
+                                            "kind": "IDENTIFIER",
+                                            "name": "i",
+                                            "startPosition": "2661"
+                                          },
+                                          "startPosition": "2654"
+                                        },
+                                        "startPosition": "2654"
+                                      },
+                                      "endPosition": "2677",
+                                      "kind": "EXPRESSION_STATEMENT",
+                                      "startPosition": "2654"
+                                    }
+                                  ],
+                                  "startPosition": "2620"
+                                },
+                                {
+                                  "endPosition": "2820",
+                                  "kind": "CASE",
+                                  "statements": [
+                                    {
+                                      "condition": {
+                                        "leftOperand": {
+                                          "endPosition": "2727",
+                                          "kind": "IDENTIFIER",
+                                          "name": "val",
+                                          "startPosition": "2724"
+                                        },
+                                        "expression": {
+                                          "endPosition": "2727",
+                                          "kind": "IDENTIFIER",
+                                          "name": "val",
+                                          "startPosition": "2724"
+                                        },
+                                        "endPosition": "2750",
+                                        "kind": "INSTANCE_OF",
+                                        "rightOperand": {
+                                          "identifier": "Enum",
+                                          "expression": {
+                                            "endPosition": "2745",
+                                            "kind": "IDENTIFIER",
+                                            "name": "Parser",
+                                            "startPosition": "2739"
+                                          },
+                                          "endPosition": "2750",
+                                          "kind": "MEMBER_SELECT",
+                                          "startPosition": "2739"
+                                        },
+                                        "type": {
+                                          "identifier": "Enum",
+                                          "expression": {
+                                            "endPosition": "2745",
+                                            "kind": "IDENTIFIER",
+                                            "name": "Parser",
+                                            "startPosition": "2739"
+                                          },
+                                          "endPosition": "2750",
+                                          "kind": "MEMBER_SELECT",
+                                          "startPosition": "2739"
+                                        },
+                                        "startPosition": "2724"
+                                      },
+                                      "endPosition": "2820",
+                                      "kind": "IF",
+                                      "startPosition": "2720",
+                                      "thenStatement": {
+                                        "endPosition": "2820",
+                                        "kind": "BLOCK",
+                                        "statements": [
+                                          {
+                                            "expression": {
+                                              "expression": {
+                                                "endPosition": "2799",
+                                                "kind": "FUNCTION_INVOCATION",
+                                                "functionSelect": {
+                                                  "endPosition": "2794",
+                                                  "kind": "IDENTIFIER",
+                                                  "name": "String",
+                                                  "startPosition": "2788"
+                                                },
+                                                "arguments": [
+                                                  {
+                                                    "endPosition": "2798",
+                                                    "kind": "IDENTIFIER",
+                                                    "name": "val",
+                                                    "startPosition": "2795"
+                                                  }
+                                                ],
+                                                "startPosition": "2788"
+                                              },
+                                              "endPosition": "2799",
+                                              "kind": "ASSIGNMENT",
+                                              "variable": {
+                                                "expression": {
+                                                  "endPosition": "2782",
+                                                  "kind": "IDENTIFIER",
+                                                  "name": "result",
+                                                  "startPosition": "2776"
+                                                },
+                                                "endPosition": "2785",
+                                                "kind": "ARRAY_ACCESS",
+                                                "index": {
+                                                  "endPosition": "2784",
+                                                  "kind": "IDENTIFIER",
+                                                  "name": "i",
+                                                  "startPosition": "2783"
+                                                },
+                                                "startPosition": "2776"
+                                              },
+                                              "startPosition": "2776"
+                                            },
+                                            "endPosition": "2799",
+                                            "kind": "EXPRESSION_STATEMENT",
+                                            "startPosition": "2776"
+                                          }
+                                        ],
+                                        "startPosition": "2752"
+                                      }
+                                    }
+                                  ],
+                                  "startPosition": "2693"
+                                }
+                              ],
+                              "expression": {
+                                "expression": {
+                                  "endPosition": "2544",
+                                  "kind": "IDENTIFIER",
+                                  "name": "val",
+                                  "startPosition": "2541"
+                                },
+                                "endPosition": "2544",
+                                "kind": "TYPEOF",
+                                "startPosition": "2534"
+                              },
+                              "endPosition": "2832",
+                              "kind": "SWITCH",
+                              "startPosition": "2526"
+                            }
+                          ],
+                          "startPosition": "2514"
+                        },
+                        "endPosition": "2840",
+                        "kind": "IF",
+                        "startPosition": "2302",
+                        "thenStatement": {
+                          "endPosition": "2508",
+                          "kind": "BLOCK",
+                          "statements": [
+                            {
+                              "endPosition": "2377",
+                              "kind": "VARIABLE",
+                              "name": "arr",
+                              "startPosition": "2350",
+                              "initializer": {
+                                "constructorExpression": {
+                                  "endPosition": "2377",
+                                  "kind": "FUNCTION_INVOCATION",
+                                  "functionSelect": {
+                                    "endPosition": "2365",
+                                    "kind": "IDENTIFIER",
+                                    "name": "Array",
+                                    "startPosition": "2360"
+                                  },
+                                  "arguments": [
+                                    {
+                                      "endPosition": "2376",
+                                      "kind": "FUNCTION_INVOCATION",
+                                      "functionSelect": {
+                                        "identifier": "size",
+                                        "expression": {
+                                          "endPosition": "2369",
+                                          "kind": "IDENTIFIER",
+                                          "name": "val",
+                                          "startPosition": "2366"
+                                        },
+                                        "endPosition": "2374",
+                                        "kind": "MEMBER_SELECT",
+                                        "startPosition": "2366"
+                                      },
+                                      "arguments": [],
+                                      "startPosition": "2366"
+                                    }
+                                  ],
+                                  "startPosition": "2360"
+                                },
+                                "endPosition": "2377",
+                                "kind": "NEW",
+                                "startPosition": "2356"
+                              }
+                            },
+                            {
+                              "endPosition": "2399",
+                              "kind": "VARIABLE",
+                              "name": "j",
+                              "startPosition": "2398"
+                            },
+                            {
+                              "expression": {
+                                "endPosition": "2406",
+                                "kind": "IDENTIFIER",
+                                "name": "val",
+                                "startPosition": "2403"
+                              },
+                              "endPosition": "2466",
+                              "kind": "FOR_IN_LOOP",
+                              "forEach": "false",
+                              "variable": {
+                                "endPosition": "2399",
+                                "kind": "IDENTIFIER",
+                                "name": "j",
+                                "startPosition": "2398"
+                              },
+                              "statement": {
+                                "endPosition": "2466",
+                                "kind": "BLOCK",
+                                "statements": [
+                                  {
+                                    "expression": {
+                                      "expression": {
+                                        "endPosition": "2453",
+                                        "kind": "FUNCTION_INVOCATION",
+                                        "functionSelect": {
+                                          "identifier": "convert",
+                                          "expression": {
+                                            "endPosition": "2437",
+                                            "kind": "IDENTIFIER",
+                                            "name": "this",
+                                            "startPosition": "2433"
+                                          },
+                                          "endPosition": "2445",
+                                          "kind": "MEMBER_SELECT",
+                                          "startPosition": "2433"
+                                        },
+                                        "arguments": [
+                                          {
+                                            "expression": {
+                                              "endPosition": "2449",
+                                              "kind": "IDENTIFIER",
+                                              "name": "val",
+                                              "startPosition": "2446"
+                                            },
+                                            "endPosition": "2452",
+                                            "kind": "ARRAY_ACCESS",
+                                            "index": {
+                                              "endPosition": "2451",
+                                              "kind": "IDENTIFIER",
+                                              "name": "j",
+                                              "startPosition": "2450"
+                                            },
+                                            "startPosition": "2446"
+                                          }
+                                        ],
+                                        "startPosition": "2433"
+                                      },
+                                      "endPosition": "2453",
+                                      "kind": "ASSIGNMENT",
+                                      "variable": {
+                                        "expression": {
+                                          "endPosition": "2427",
+                                          "kind": "IDENTIFIER",
+                                          "name": "arr",
+                                          "startPosition": "2424"
+                                        },
+                                        "endPosition": "2430",
+                                        "kind": "ARRAY_ACCESS",
+                                        "index": {
+                                          "endPosition": "2429",
+                                          "kind": "IDENTIFIER",
+                                          "name": "j",
+                                          "startPosition": "2428"
+                                        },
+                                        "startPosition": "2424"
+                                      },
+                                      "startPosition": "2424"
+                                    },
+                                    "endPosition": "2453",
+                                    "kind": "EXPRESSION_STATEMENT",
+                                    "startPosition": "2424"
+                                  }
+                                ],
+                                "startPosition": "2408"
+                              },
+                              "startPosition": "2389"
+                            },
+                            {
+                              "expression": {
+                                "expression": {
+                                  "endPosition": "2499",
+                                  "kind": "IDENTIFIER",
+                                  "name": "arr",
+                                  "startPosition": "2496"
+                                },
+                                "endPosition": "2499",
+                                "kind": "ASSIGNMENT",
+                                "variable": {
+                                  "expression": {
+                                    "endPosition": "2490",
+                                    "kind": "IDENTIFIER",
+                                    "name": "result",
+                                    "startPosition": "2484"
+                                  },
+                                  "endPosition": "2493",
+                                  "kind": "ARRAY_ACCESS",
+                                  "index": {
+                                    "endPosition": "2492",
+                                    "kind": "IDENTIFIER",
+                                    "name": "i",
+                                    "startPosition": "2491"
+                                  },
+                                  "startPosition": "2484"
+                                },
+                                "startPosition": "2484"
+                              },
+                              "endPosition": "2499",
+                              "kind": "EXPRESSION_STATEMENT",
+                              "startPosition": "2484"
+                            }
+                          ],
+                          "startPosition": "2334"
+                        }
+                      },
+                      "endPosition": "2840",
+                      "kind": "IF",
+                      "startPosition": "2213",
+                      "thenStatement": {
+                        "endPosition": "2296",
+                        "kind": "BLOCK",
+                        "statements": [
+                          {
+                            "expression": {
+                              "expression": {
+                                "endPosition": "2286",
+                                "kind": "FUNCTION_INVOCATION",
+                                "functionSelect": {
+                                  "identifier": "convert",
+                                  "expression": {
+                                    "endPosition": "2273",
+                                    "kind": "IDENTIFIER",
+                                    "name": "this",
+                                    "startPosition": "2269"
+                                  },
+                                  "endPosition": "2281",
+                                  "kind": "MEMBER_SELECT",
+                                  "startPosition": "2269"
+                                },
+                                "arguments": [
+                                  {
+                                    "endPosition": "2285",
+                                    "kind": "IDENTIFIER",
+                                    "name": "val",
+                                    "startPosition": "2282"
+                                  }
+                                ],
+                                "startPosition": "2269"
+                              },
+                              "endPosition": "2286",
+                              "kind": "ASSIGNMENT",
+                              "variable": {
+                                "expression": {
+                                  "endPosition": "2263",
+                                  "kind": "IDENTIFIER",
+                                  "name": "result",
+                                  "startPosition": "2257"
+                                },
+                                "endPosition": "2266",
+                                "kind": "ARRAY_ACCESS",
+                                "index": {
+                                  "endPosition": "2265",
+                                  "kind": "IDENTIFIER",
+                                  "name": "i",
+                                  "startPosition": "2264"
+                                },
+                                "startPosition": "2257"
+                              },
+                              "startPosition": "2257"
+                            },
+                            "endPosition": "2286",
+                            "kind": "EXPRESSION_STATEMENT",
+                            "startPosition": "2257"
+                          }
+                        ],
+                        "startPosition": "2245"
+                      }
+                    }
+                  ],
+                  "startPosition": "2179"
+                },
+                "startPosition": "2160"
+              },
+              {
+                "expression": {
+                  "endPosition": "2862",
+                  "kind": "IDENTIFIER",
+                  "name": "result",
+                  "startPosition": "2856"
+                },
+                "endPosition": "2863",
+                "kind": "RETURN",
+                "startPosition": "2849"
+              }
+            ],
+            "startPosition": "2014"
+          },
+          "strict": "false",
+          "startPosition": "2014",
+          "parameters": [
+            {
+              "endPosition": "2012",
+              "kind": "IDENTIFIER",
+              "name": "tree",
+              "startPosition": "2008"
+            }
+          ]
+        },
+        "endPosition": "2014",
+        "kind": "ASSIGNMENT",
+        "variable": {
+          "identifier": "convert",
+          "expression": {
+            "identifier": "prototype",
+            "expression": {
+              "endPosition": "1978",
+              "kind": "IDENTIFIER",
+              "name": "Parser",
+              "startPosition": "1972"
+            },
+            "endPosition": "1988",
+            "kind": "MEMBER_SELECT",
+            "startPosition": "1972"
+          },
+          "endPosition": "1996",
+          "kind": "MEMBER_SELECT",
+          "startPosition": "1972"
+        },
+        "startPosition": "1972"
+      },
+      "endPosition": "2865",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "1972"
+    },
+    {
+      "expression": {
+        "endPosition": "3909",
+        "kind": "FUNCTION_INVOCATION",
+        "functionSelect": {
+          "endPosition": "3907",
+          "kind": "IDENTIFIER",
+          "name": "main",
+          "startPosition": "3903"
+        },
+        "arguments": [],
+        "startPosition": "3903"
+      },
+      "endPosition": "3909",
+      "kind": "EXPRESSION_STATEMENT",
+      "startPosition": "3903"
+    }
+  ],
+  "sourceName": "parserapi.js",
+  "strict": "false",
+  "startPosition": "1136"
+}
+]