{ "type": "File", "start": 0, "end": 164, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 11, "column": 1 } }, "program": { "type": "Program", "start": 0, "end": 164, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 11, "column": 1 } }, "sourceType": "module", "body": [ { "type": "ClassDeclaration", "start": 0, "end": 164, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 11, "column": 1 } }, "id": { "type": "Identifier", "start": 6, "end": 9, "loc": { "start": { "line": 1, "column": 6 }, "end": { "line": 1, "column": 9 }, "identifierName": "Foo" }, "name": "Foo" }, "superClass": null, "body": { "type": "ClassBody", "start": 10, "end": 164, "loc": { "start": { "line": 1, "column": 10 }, "end": { "line": 11, "column": 1 } }, "body": [ { "type": "ClassMethod", "start": 14, "end": 110, "loc": { "start": { "line": 2, "column": 2 }, "end": { "line": 6, "column": 3 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 14, "end": 17, "loc": { "start": { "line": 2, "column": 2 }, "end": { "line": 2, "column": 5 }, "identifierName": "foo" }, "name": "foo" }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 20, "end": 110, "loc": { "start": { "line": 2, "column": 8 }, "end": { "line": 6, "column": 3 } }, "body": [ { "type": "SwitchStatement", "start": 26, "end": 106, "loc": { "start": { "line": 3, "column": 4 }, "end": { "line": 5, "column": 5 } }, "discriminant": { "type": "NumericLiteral", "start": 34, "end": 35, "loc": { "start": { "line": 3, "column": 12 }, "end": { "line": 3, "column": 13 } }, "extra": { "rawValue": 1, "raw": "1" }, "value": 1 }, "cases": [ { "type": "SwitchCase", "start": 45, "end": 100, "loc": { "start": { "line": 4, "column": 6 }, "end": { "line": 4, "column": 61 } }, "consequent": [], "test": { "type": "BinaryExpression", "start": 51, "end": 98, "loc": { "start": { "line": 4, "column": 12 }, "end": { "line": 4, "column": 59 } }, "left": { "type": "MemberExpression", "start": 51, "end": 71, "loc": { "start": { "line": 4, "column": 12 }, "end": { "line": 4, "column": 32 } }, "object": { "type": "Identifier", "start": 51, "end": 61, "loc": { "start": { "line": 4, "column": 12 }, "end": { "line": 4, "column": 22 }, "identifierName": "MatrixType" }, "name": "MatrixType" }, "property": { "type": "Identifier", "start": 62, "end": 71, "loc": { "start": { "line": 4, "column": 23 }, "end": { "line": 4, "column": 32 }, "identifierName": "IsScaling" }, "name": "IsScaling" }, "computed": false }, "operator": "|", "right": { "type": "MemberExpression", "start": 74, "end": 98, "loc": { "start": { "line": 4, "column": 35 }, "end": { "line": 4, "column": 59 } }, "object": { "type": "Identifier", "start": 74, "end": 84, "loc": { "start": { "line": 4, "column": 35 }, "end": { "line": 4, "column": 45 }, "identifierName": "MatrixType" }, "name": "MatrixType" }, "property": { "type": "Identifier", "start": 85, "end": 98, "loc": { "start": { "line": 4, "column": 46 }, "end": { "line": 4, "column": 59 }, "identifierName": "IsTranslation" }, "name": "IsTranslation" }, "computed": false }, "extra": { "parenthesized": true, "parenStart": 50 } } } ] } ], "directives": [] } }, { "type": "ClassMethod", "start": 114, "end": 162, "loc": { "start": { "line": 8, "column": 2 }, "end": { "line": 10, "column": 3 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 114, "end": 117, "loc": { "start": { "line": 8, "column": 2 }, "end": { "line": 8, "column": 5 }, "identifierName": "bar" }, "name": "bar" }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 120, "end": 162, "loc": { "start": { "line": 8, "column": 8 }, "end": { "line": 10, "column": 3 } }, "body": [ { "type": "SwitchStatement", "start": 126, "end": 158, "loc": { "start": { "line": 9, "column": 4 }, "end": { "line": 9, "column": 36 } }, "discriminant": { "type": "BinaryExpression", "start": 134, "end": 154, "loc": { "start": { "line": 9, "column": 12 }, "end": { "line": 9, "column": 32 } }, "left": { "type": "BinaryExpression", "start": 135, "end": 145, "loc": { "start": { "line": 9, "column": 13 }, "end": { "line": 9, "column": 23 } }, "left": { "type": "Identifier", "start": 135, "end": 140, "loc": { "start": { "line": 9, "column": 13 }, "end": { "line": 9, "column": 18 }, "identifierName": "typeA" }, "name": "typeA" }, "operator": "<<", "right": { "type": "NumericLiteral", "start": 144, "end": 145, "loc": { "start": { "line": 9, "column": 22 }, "end": { "line": 9, "column": 23 } }, "extra": { "rawValue": 4, "raw": "4" }, "value": 4 }, "extra": { "parenthesized": true, "parenStart": 134 } }, "operator": "|", "right": { "type": "Identifier", "start": 149, "end": 154, "loc": { "start": { "line": 9, "column": 27 }, "end": { "line": 9, "column": 32 }, "identifierName": "typeB" }, "name": "typeB" } }, "cases": [] } ], "directives": [] } } ] } } ], "directives": [] } }