{ "type": "File", "start": 0, "end": 757, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 37, "column": 0 } }, "program": { "type": "Program", "start": 0, "end": 757, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 37, "column": 0 } }, "sourceType": "module", "body": [ { "type": "ExportDefaultDeclaration", "start": 53, "end": 756, "loc": { "start": { "line": 5, "column": 0 }, "end": { "line": 36, "column": 1 } }, "declaration": { "type": "ClassDeclaration", "start": 68, "end": 756, "loc": { "start": { "line": 5, "column": 15 }, "end": { "line": 36, "column": 1 } }, "id": { "type": "Identifier", "start": 74, "end": 80, "loc": { "start": { "line": 5, "column": 21 }, "end": { "line": 5, "column": 27 }, "identifierName": "YEvent" }, "name": "YEvent", "leadingComments": null }, "superClass": null, "body": { "type": "ClassBody", "start": 81, "end": 756, "loc": { "start": { "line": 5, "column": 28 }, "end": { "line": 36, "column": 1 } }, "body": [ { "type": "ClassMethod", "start": 142, "end": 418, "loc": { "start": { "line": 9, "column": 2 }, "end": { "line": 20, "column": 3 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 142, "end": 153, "loc": { "start": { "line": 9, "column": 2 }, "end": { "line": 9, "column": 13 }, "identifierName": "constructor" }, "name": "constructor", "leadingComments": null }, "kind": "constructor", "id": null, "generator": false, "expression": false, "async": false, "params": [ { "type": "Identifier", "start": 155, "end": 161, "loc": { "start": { "line": 9, "column": 15 }, "end": { "line": 9, "column": 21 }, "identifierName": "target" }, "name": "target" } ], "body": { "type": "BlockStatement", "start": 163, "end": 418, "loc": { "start": { "line": 9, "column": 23 }, "end": { "line": 20, "column": 3 } }, "body": [ { "type": "ExpressionStatement", "start": 258, "end": 278, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 14, "column": 24 } }, "expression": { "type": "AssignmentExpression", "start": 258, "end": 278, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 14, "column": 24 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 258, "end": 269, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 14, "column": 15 } }, "object": { "type": "ThisExpression", "start": 258, "end": 262, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 14, "column": 8 } }, "leadingComments": null }, "property": { "type": "Identifier", "start": 263, "end": 269, "loc": { "start": { "line": 14, "column": 9 }, "end": { "line": 14, "column": 15 }, "identifierName": "target" }, "name": "target" }, "computed": false, "leadingComments": null }, "right": { "type": "Identifier", "start": 272, "end": 278, "loc": { "start": { "line": 14, "column": 18 }, "end": { "line": 14, "column": 24 }, "identifierName": "target" }, "name": "target", "leadingComments": null, "trailingComments": null }, "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * The type on which this event was created on.\n * @type {YType}\n ", "start": 169, "end": 253, "loc": { "start": { "line": 10, "column": 4 }, "end": { "line": 13, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\n * The current target on which the observe callback is called.\n * @type {YType}\n ", "start": 283, "end": 382, "loc": { "start": { "line": 15, "column": 4 }, "end": { "line": 18, "column": 7 } } } ] }, { "type": "ExpressionStatement", "start": 387, "end": 414, "loc": { "start": { "line": 19, "column": 4 }, "end": { "line": 19, "column": 31 } }, "expression": { "type": "AssignmentExpression", "start": 387, "end": 414, "loc": { "start": { "line": 19, "column": 4 }, "end": { "line": 19, "column": 31 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 387, "end": 405, "loc": { "start": { "line": 19, "column": 4 }, "end": { "line": 19, "column": 22 } }, "object": { "type": "ThisExpression", "start": 387, "end": 391, "loc": { "start": { "line": 19, "column": 4 }, "end": { "line": 19, "column": 8 } }, "leadingComments": null }, "property": { "type": "Identifier", "start": 392, "end": 405, "loc": { "start": { "line": 19, "column": 9 }, "end": { "line": 19, "column": 22 }, "identifierName": "currentTarget" }, "name": "currentTarget" }, "computed": false, "leadingComments": null }, "right": { "type": "Identifier", "start": 408, "end": 414, "loc": { "start": { "line": 19, "column": 25 }, "end": { "line": 19, "column": 31 }, "identifierName": "target" }, "name": "target" }, "leadingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * The current target on which the observe callback is called.\n * @type {YType}\n ", "start": 283, "end": 382, "loc": { "start": { "line": 15, "column": 4 }, "end": { "line": 18, "column": 7 } } } ] } ], "directives": [], "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * @param {YType} target The changed type.\n ", "start": 85, "end": 139, "loc": { "start": { "line": 6, "column": 2 }, "end": { "line": 8, "column": 5 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\n * Computes the path from `y` to the changed type.\n *\n * The following property holds:\n * @example\n * let type = y\n * event.path.forEach(function (dir) {\n * type = type.get(dir)\n * })\n * type === event.target // => true\n ", "start": 422, "end": 681, "loc": { "start": { "line": 22, "column": 2 }, "end": { "line": 32, "column": 5 } } } ] }, { "type": "ClassMethod", "start": 684, "end": 754, "loc": { "start": { "line": 33, "column": 2 }, "end": { "line": 35, "column": 3 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 688, "end": 692, "loc": { "start": { "line": 33, "column": 6 }, "end": { "line": 33, "column": 10 }, "identifierName": "path" }, "name": "path" }, "kind": "get", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 696, "end": 754, "loc": { "start": { "line": 33, "column": 14 }, "end": { "line": 35, "column": 3 } }, "body": [ { "type": "ReturnStatement", "start": 702, "end": 750, "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": 52 } }, "argument": { "type": "CallExpression", "start": 709, "end": 750, "loc": { "start": { "line": 34, "column": 11 }, "end": { "line": 34, "column": 52 } }, "callee": { "type": "MemberExpression", "start": 709, "end": 737, "loc": { "start": { "line": 34, "column": 11 }, "end": { "line": 34, "column": 39 } }, "object": { "type": "MemberExpression", "start": 709, "end": 727, "loc": { "start": { "line": 34, "column": 11 }, "end": { "line": 34, "column": 29 } }, "object": { "type": "ThisExpression", "start": 709, "end": 713, "loc": { "start": { "line": 34, "column": 11 }, "end": { "line": 34, "column": 15 } } }, "property": { "type": "Identifier", "start": 714, "end": 727, "loc": { "start": { "line": 34, "column": 16 }, "end": { "line": 34, "column": 29 }, "identifierName": "currentTarget" }, "name": "currentTarget" }, "computed": false }, "property": { "type": "Identifier", "start": 728, "end": 737, "loc": { "start": { "line": 34, "column": 30 }, "end": { "line": 34, "column": 39 }, "identifierName": "getPathTo" }, "name": "getPathTo" }, "computed": false }, "arguments": [ { "type": "MemberExpression", "start": 738, "end": 749, "loc": { "start": { "line": 34, "column": 40 }, "end": { "line": 34, "column": 51 } }, "object": { "type": "ThisExpression", "start": 738, "end": 742, "loc": { "start": { "line": 34, "column": 40 }, "end": { "line": 34, "column": 44 } } }, "property": { "type": "Identifier", "start": 743, "end": 749, "loc": { "start": { "line": 34, "column": 45 }, "end": { "line": 34, "column": 51 }, "identifierName": "target" }, "name": "target" }, "computed": false } ] } } ], "directives": [] }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * Computes the path from `y` to the changed type.\n *\n * The following property holds:\n * @example\n * let type = y\n * event.path.forEach(function (dir) {\n * type = type.get(dir)\n * })\n * type === event.target // => true\n ", "start": 422, "end": 681, "loc": { "start": { "line": 22, "column": 2 }, "end": { "line": 32, "column": 5 } } } ] } ] }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * YEvent describes the changes on a YType.\n ", "start": 1, "end": 52, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 4, "column": 3 } } } ], "trailingComments": [] }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * YEvent describes the changes on a YType.\n ", "start": 1, "end": 52, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 4, "column": 3 } } } ] } ], "directives": [] }, "comments": [ { "type": "CommentBlock", "value": "*\n * YEvent describes the changes on a YType.\n ", "start": 1, "end": 52, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 4, "column": 3 } } }, { "type": "CommentBlock", "value": "*\n * @param {YType} target The changed type.\n ", "start": 85, "end": 139, "loc": { "start": { "line": 6, "column": 2 }, "end": { "line": 8, "column": 5 } } }, { "type": "CommentBlock", "value": "*\n * The type on which this event was created on.\n * @type {YType}\n ", "start": 169, "end": 253, "loc": { "start": { "line": 10, "column": 4 }, "end": { "line": 13, "column": 7 } } }, { "type": "CommentBlock", "value": "*\n * The current target on which the observe callback is called.\n * @type {YType}\n ", "start": 283, "end": 382, "loc": { "start": { "line": 15, "column": 4 }, "end": { "line": 18, "column": 7 } } }, { "type": "CommentBlock", "value": "*\n * Computes the path from `y` to the changed type.\n *\n * The following property holds:\n * @example\n * let type = y\n * event.path.forEach(function (dir) {\n * type = type.get(dir)\n * })\n * type === event.target // => true\n ", "start": 422, "end": 681, "loc": { "start": { "line": 22, "column": 2 }, "end": { "line": 32, "column": 5 } } } ], "tokens": [ { "type": "CommentBlock", "value": "*\n * YEvent describes the changes on a YType.\n ", "start": 1, "end": 52, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 4, "column": 3 } } }, { "type": { "label": "export", "keyword": "export", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "export", "start": 53, "end": 59, "loc": { "start": { "line": 5, "column": 0 }, "end": { "line": 5, "column": 6 } } }, { "type": { "label": "default", "keyword": "default", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "default", "start": 60, "end": 67, "loc": { "start": { "line": 5, "column": 7 }, "end": { "line": 5, "column": 14 } } }, { "type": { "label": "class", "keyword": "class", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "class", "start": 68, "end": 73, "loc": { "start": { "line": 5, "column": 15 }, "end": { "line": 5, "column": 20 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "YEvent", "start": 74, "end": 80, "loc": { "start": { "line": 5, "column": 21 }, "end": { "line": 5, "column": 27 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 81, "end": 82, "loc": { "start": { "line": 5, "column": 28 }, "end": { "line": 5, "column": 29 } } }, { "type": "CommentBlock", "value": "*\n * @param {YType} target The changed type.\n ", "start": 85, "end": 139, "loc": { "start": { "line": 6, "column": 2 }, "end": { "line": 8, "column": 5 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "constructor", "start": 142, "end": 153, "loc": { "start": { "line": 9, "column": 2 }, "end": { "line": 9, "column": 13 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 154, "end": 155, "loc": { "start": { "line": 9, "column": 14 }, "end": { "line": 9, "column": 15 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 155, "end": 161, "loc": { "start": { "line": 9, "column": 15 }, "end": { "line": 9, "column": 21 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 161, "end": 162, "loc": { "start": { "line": 9, "column": 21 }, "end": { "line": 9, "column": 22 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 163, "end": 164, "loc": { "start": { "line": 9, "column": 23 }, "end": { "line": 9, "column": 24 } } }, { "type": "CommentBlock", "value": "*\n * The type on which this event was created on.\n * @type {YType}\n ", "start": 169, "end": 253, "loc": { "start": { "line": 10, "column": 4 }, "end": { "line": 13, "column": 7 } } }, { "type": { "label": "this", "keyword": "this", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "this", "start": 258, "end": 262, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 14, "column": 8 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 262, "end": 263, "loc": { "start": { "line": 14, "column": 8 }, "end": { "line": 14, "column": 9 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 263, "end": 269, "loc": { "start": { "line": 14, "column": 9 }, "end": { "line": 14, "column": 15 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 270, "end": 271, "loc": { "start": { "line": 14, "column": 16 }, "end": { "line": 14, "column": 17 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 272, "end": 278, "loc": { "start": { "line": 14, "column": 18 }, "end": { "line": 14, "column": 24 } } }, { "type": "CommentBlock", "value": "*\n * The current target on which the observe callback is called.\n * @type {YType}\n ", "start": 283, "end": 382, "loc": { "start": { "line": 15, "column": 4 }, "end": { "line": 18, "column": 7 } } }, { "type": { "label": "this", "keyword": "this", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "this", "start": 387, "end": 391, "loc": { "start": { "line": 19, "column": 4 }, "end": { "line": 19, "column": 8 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 391, "end": 392, "loc": { "start": { "line": 19, "column": 8 }, "end": { "line": 19, "column": 9 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "currentTarget", "start": 392, "end": 405, "loc": { "start": { "line": 19, "column": 9 }, "end": { "line": 19, "column": 22 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 406, "end": 407, "loc": { "start": { "line": 19, "column": 23 }, "end": { "line": 19, "column": 24 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 408, "end": 414, "loc": { "start": { "line": 19, "column": 25 }, "end": { "line": 19, "column": 31 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 417, "end": 418, "loc": { "start": { "line": 20, "column": 2 }, "end": { "line": 20, "column": 3 } } }, { "type": "CommentBlock", "value": "*\n * Computes the path from `y` to the changed type.\n *\n * The following property holds:\n * @example\n * let type = y\n * event.path.forEach(function (dir) {\n * type = type.get(dir)\n * })\n * type === event.target // => true\n ", "start": 422, "end": 681, "loc": { "start": { "line": 22, "column": 2 }, "end": { "line": 32, "column": 5 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "get", "start": 684, "end": 687, "loc": { "start": { "line": 33, "column": 2 }, "end": { "line": 33, "column": 5 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "path", "start": 688, "end": 692, "loc": { "start": { "line": 33, "column": 6 }, "end": { "line": 33, "column": 10 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 693, "end": 694, "loc": { "start": { "line": 33, "column": 11 }, "end": { "line": 33, "column": 12 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 694, "end": 695, "loc": { "start": { "line": 33, "column": 12 }, "end": { "line": 33, "column": 13 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 696, "end": 697, "loc": { "start": { "line": 33, "column": 14 }, "end": { "line": 33, "column": 15 } } }, { "type": { "label": "return", "keyword": "return", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "return", "start": 702, "end": 708, "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": 10 } } }, { "type": { "label": "this", "keyword": "this", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "this", "start": 709, "end": 713, "loc": { "start": { "line": 34, "column": 11 }, "end": { "line": 34, "column": 15 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 713, "end": 714, "loc": { "start": { "line": 34, "column": 15 }, "end": { "line": 34, "column": 16 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "currentTarget", "start": 714, "end": 727, "loc": { "start": { "line": 34, "column": 16 }, "end": { "line": 34, "column": 29 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 727, "end": 728, "loc": { "start": { "line": 34, "column": 29 }, "end": { "line": 34, "column": 30 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "getPathTo", "start": 728, "end": 737, "loc": { "start": { "line": 34, "column": 30 }, "end": { "line": 34, "column": 39 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 737, "end": 738, "loc": { "start": { "line": 34, "column": 39 }, "end": { "line": 34, "column": 40 } } }, { "type": { "label": "this", "keyword": "this", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "this", "start": 738, "end": 742, "loc": { "start": { "line": 34, "column": 40 }, "end": { "line": 34, "column": 44 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 742, "end": 743, "loc": { "start": { "line": 34, "column": 44 }, "end": { "line": 34, "column": 45 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 743, "end": 749, "loc": { "start": { "line": 34, "column": 45 }, "end": { "line": 34, "column": 51 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 749, "end": 750, "loc": { "start": { "line": 34, "column": 51 }, "end": { "line": 34, "column": 52 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 753, "end": 754, "loc": { "start": { "line": 35, "column": 2 }, "end": { "line": 35, "column": 3 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 755, "end": 756, "loc": { "start": { "line": 36, "column": 0 }, "end": { "line": 36, "column": 1 } } }, { "type": { "label": "eof", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 757, "end": 757, "loc": { "start": { "line": 37, "column": 0 }, "end": { "line": 37, "column": 0 } } } ] }