{ "type": "File", "start": 0, "end": 786, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 38, "column": 1 } }, "program": { "type": "Program", "start": 0, "end": 786, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 38, "column": 1 } }, "sourceType": "module", "body": [ { "type": "ExportNamedDeclaration", "start": 0, "end": 786, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 38, "column": 1 } }, "specifiers": [], "source": null, "declaration": { "type": "ClassDeclaration", "start": 7, "end": 786, "loc": { "start": { "line": 1, "column": 7 }, "end": { "line": 38, "column": 1 } }, "id": { "type": "Identifier", "start": 13, "end": 35, "loc": { "start": { "line": 1, "column": 13 }, "end": { "line": 1, "column": 35 }, "identifierName": "GameAnalyticsInterface" }, "name": "GameAnalyticsInterface" }, "superClass": null, "body": { "type": "ClassBody", "start": 36, "end": 786, "loc": { "start": { "line": 1, "column": 36 }, "end": { "line": 38, "column": 1 } }, "body": [ { "type": "ClassMethod", "start": 43, "end": 154, "loc": { "start": { "line": 2, "column": 4 }, "end": { "line": 5, "column": 5 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 43, "end": 54, "loc": { "start": { "line": 2, "column": 4 }, "end": { "line": 2, "column": 15 }, "identifierName": "constructor" }, "name": "constructor" }, "kind": "constructor", "id": null, "generator": false, "expression": false, "async": false, "params": [ { "type": "Identifier", "start": 55, "end": 58, "loc": { "start": { "line": 2, "column": 16 }, "end": { "line": 2, "column": 19 }, "identifierName": "app" }, "name": "app" } ], "body": { "type": "BlockStatement", "start": 60, "end": 154, "loc": { "start": { "line": 2, "column": 21 }, "end": { "line": 5, "column": 5 } }, "body": [ { "type": "ExpressionStatement", "start": 132, "end": 147, "loc": { "start": { "line": 4, "column": 8 }, "end": { "line": 4, "column": 23 } }, "expression": { "type": "AssignmentExpression", "start": 132, "end": 146, "loc": { "start": { "line": 4, "column": 8 }, "end": { "line": 4, "column": 22 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 132, "end": 140, "loc": { "start": { "line": 4, "column": 8 }, "end": { "line": 4, "column": 16 } }, "object": { "type": "ThisExpression", "start": 132, "end": 136, "loc": { "start": { "line": 4, "column": 8 }, "end": { "line": 4, "column": 12 } }, "leadingComments": null }, "property": { "type": "Identifier", "start": 137, "end": 140, "loc": { "start": { "line": 4, "column": 13 }, "end": { "line": 4, "column": 16 }, "identifierName": "app" }, "name": "app" }, "computed": false, "leadingComments": null }, "right": { "type": "Identifier", "start": 143, "end": 146, "loc": { "start": { "line": 4, "column": 19 }, "end": { "line": 4, "column": 22 }, "identifierName": "app" }, "name": "app" }, "leadingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "* @type {import(\"../application\").Application} ", "start": 71, "end": 122, "loc": { "start": { "line": 3, "column": 8 }, "end": { "line": 3, "column": 59 } } } ] } ], "directives": [], "trailingComments": null }, "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * Initializes the analytics\r\n * @returns {Promise}\r\n ", "start": 162, "end": 241, "loc": { "start": { "line": 7, "column": 4 }, "end": { "line": 10, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 247, "end": 321, "loc": { "start": { "line": 11, "column": 4 }, "end": { "line": 14, "column": 5 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 247, "end": 257, "loc": { "start": { "line": 11, "column": 4 }, "end": { "line": 11, "column": 14 }, "identifierName": "initialize" }, "name": "initialize", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 260, "end": 321, "loc": { "start": { "line": 11, "column": 17 }, "end": { "line": 14, "column": 5 } }, "body": [ { "type": "ExpressionStatement", "start": 271, "end": 280, "loc": { "start": { "line": 12, "column": 8 }, "end": { "line": 12, "column": 17 } }, "expression": { "type": "Identifier", "start": 271, "end": 279, "loc": { "start": { "line": 12, "column": 8 }, "end": { "line": 12, "column": 16 }, "identifierName": "abstract" }, "name": "abstract" } }, { "type": "ReturnStatement", "start": 290, "end": 314, "loc": { "start": { "line": 13, "column": 8 }, "end": { "line": 13, "column": 32 } }, "argument": { "type": "CallExpression", "start": 297, "end": 313, "loc": { "start": { "line": 13, "column": 15 }, "end": { "line": 13, "column": 31 } }, "callee": { "type": "MemberExpression", "start": 297, "end": 311, "loc": { "start": { "line": 13, "column": 15 }, "end": { "line": 13, "column": 29 } }, "object": { "type": "Identifier", "start": 297, "end": 304, "loc": { "start": { "line": 13, "column": 15 }, "end": { "line": 13, "column": 22 }, "identifierName": "Promise" }, "name": "Promise" }, "property": { "type": "Identifier", "start": 305, "end": 311, "loc": { "start": { "line": 13, "column": 23 }, "end": { "line": 13, "column": 29 }, "identifierName": "reject" }, "name": "reject" }, "computed": false }, "arguments": [] } } ], "directives": [], "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * Initializes the analytics\r\n * @returns {Promise}\r\n ", "start": 162, "end": 241, "loc": { "start": { "line": 7, "column": 4 }, "end": { "line": 10, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * Handles a new game which was started\r\n ", "start": 329, "end": 386, "loc": { "start": { "line": 16, "column": 4 }, "end": { "line": 18, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 392, "end": 414, "loc": { "start": { "line": 19, "column": 4 }, "end": { "line": 19, "column": 26 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 392, "end": 409, "loc": { "start": { "line": 19, "column": 4 }, "end": { "line": 19, "column": 21 }, "identifierName": "handleGameStarted" }, "name": "handleGameStarted", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 412, "end": 414, "loc": { "start": { "line": 19, "column": 24 }, "end": { "line": 19, "column": 26 } }, "body": [], "directives": [], "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * Handles a new game which was started\r\n ", "start": 329, "end": 386, "loc": { "start": { "line": 16, "column": 4 }, "end": { "line": 18, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * Handles a resumed game\r\n ", "start": 422, "end": 465, "loc": { "start": { "line": 21, "column": 4 }, "end": { "line": 23, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 471, "end": 493, "loc": { "start": { "line": 24, "column": 4 }, "end": { "line": 24, "column": 26 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 471, "end": 488, "loc": { "start": { "line": 24, "column": 4 }, "end": { "line": 24, "column": 21 }, "identifierName": "handleGameResumed" }, "name": "handleGameResumed", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 491, "end": 493, "loc": { "start": { "line": 24, "column": 24 }, "end": { "line": 24, "column": 26 } }, "body": [], "directives": [], "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * Handles a resumed game\r\n ", "start": 422, "end": 465, "loc": { "start": { "line": 21, "column": 4 }, "end": { "line": 23, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * Handles the given level completed\r\n * @param {number} level\r\n ", "start": 501, "end": 585, "loc": { "start": { "line": 26, "column": 4 }, "end": { "line": 29, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 591, "end": 621, "loc": { "start": { "line": 30, "column": 4 }, "end": { "line": 30, "column": 34 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 591, "end": 611, "loc": { "start": { "line": 30, "column": 4 }, "end": { "line": 30, "column": 24 }, "identifierName": "handleLevelCompleted" }, "name": "handleLevelCompleted", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [ { "type": "Identifier", "start": 612, "end": 617, "loc": { "start": { "line": 30, "column": 25 }, "end": { "line": 30, "column": 30 }, "identifierName": "level" }, "name": "level" } ], "body": { "type": "BlockStatement", "start": 619, "end": 621, "loc": { "start": { "line": 30, "column": 32 }, "end": { "line": 30, "column": 34 } }, "body": [], "directives": [], "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * Handles the given level completed\r\n * @param {number} level\r\n ", "start": 501, "end": 585, "loc": { "start": { "line": 26, "column": 4 }, "end": { "line": 29, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\r\n * Handles the given upgrade completed\r\n * @param {string} id\r\n * @param {number} level\r\n ", "start": 629, "end": 742, "loc": { "start": { "line": 32, "column": 4 }, "end": { "line": 36, "column": 7 } } } ] }, { "type": "ClassMethod", "start": 748, "end": 783, "loc": { "start": { "line": 37, "column": 4 }, "end": { "line": 37, "column": 39 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 748, "end": 769, "loc": { "start": { "line": 37, "column": 4 }, "end": { "line": 37, "column": 25 }, "identifierName": "handleUpgradeUnlocked" }, "name": "handleUpgradeUnlocked", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [ { "type": "Identifier", "start": 770, "end": 772, "loc": { "start": { "line": 37, "column": 26 }, "end": { "line": 37, "column": 28 }, "identifierName": "id" }, "name": "id" }, { "type": "Identifier", "start": 774, "end": 779, "loc": { "start": { "line": 37, "column": 30 }, "end": { "line": 37, "column": 35 }, "identifierName": "level" }, "name": "level" } ], "body": { "type": "BlockStatement", "start": 781, "end": 783, "loc": { "start": { "line": 37, "column": 37 }, "end": { "line": 37, "column": 39 } }, "body": [], "directives": [] }, "leadingComments": [ { "type": "CommentBlock", "value": "*\r\n * Handles the given upgrade completed\r\n * @param {string} id\r\n * @param {number} level\r\n ", "start": 629, "end": 742, "loc": { "start": { "line": 32, "column": 4 }, "end": { "line": 36, "column": 7 } } } ] } ] }, "leadingComments": [], "trailingComments": [] } } ], "directives": [] }, "comments": [ { "type": "CommentBlock", "value": "* @type {import(\"../application\").Application} ", "start": 71, "end": 122, "loc": { "start": { "line": 3, "column": 8 }, "end": { "line": 3, "column": 59 } } }, { "type": "CommentBlock", "value": "*\r\n * Initializes the analytics\r\n * @returns {Promise}\r\n ", "start": 162, "end": 241, "loc": { "start": { "line": 7, "column": 4 }, "end": { "line": 10, "column": 7 } } }, { "type": "CommentBlock", "value": "*\r\n * Handles a new game which was started\r\n ", "start": 329, "end": 386, "loc": { "start": { "line": 16, "column": 4 }, "end": { "line": 18, "column": 7 } } }, { "type": "CommentBlock", "value": "*\r\n * Handles a resumed game\r\n ", "start": 422, "end": 465, "loc": { "start": { "line": 21, "column": 4 }, "end": { "line": 23, "column": 7 } } }, { "type": "CommentBlock", "value": "*\r\n * Handles the given level completed\r\n * @param {number} level\r\n ", "start": 501, "end": 585, "loc": { "start": { "line": 26, "column": 4 }, "end": { "line": 29, "column": 7 } } }, { "type": "CommentBlock", "value": "*\r\n * Handles the given upgrade completed\r\n * @param {string} id\r\n * @param {number} level\r\n ", "start": 629, "end": 742, "loc": { "start": { "line": 32, "column": 4 }, "end": { "line": 36, "column": 7 } } } ], "tokens": [ { "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": 0, "end": 6, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 1, "column": 6 } } }, { "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": 7, "end": 12, "loc": { "start": { "line": 1, "column": 7 }, "end": { "line": 1, "column": 12 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "GameAnalyticsInterface", "start": 13, "end": 35, "loc": { "start": { "line": 1, "column": 13 }, "end": { "line": 1, "column": 35 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 36, "end": 37, "loc": { "start": { "line": 1, "column": 36 }, "end": { "line": 1, "column": 37 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "constructor", "start": 43, "end": 54, "loc": { "start": { "line": 2, "column": 4 }, "end": { "line": 2, "column": 15 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 54, "end": 55, "loc": { "start": { "line": 2, "column": 15 }, "end": { "line": 2, "column": 16 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "app", "start": 55, "end": 58, "loc": { "start": { "line": 2, "column": 16 }, "end": { "line": 2, "column": 19 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 58, "end": 59, "loc": { "start": { "line": 2, "column": 19 }, "end": { "line": 2, "column": 20 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 60, "end": 61, "loc": { "start": { "line": 2, "column": 21 }, "end": { "line": 2, "column": 22 } } }, { "type": "CommentBlock", "value": "* @type {import(\"../application\").Application} ", "start": 71, "end": 122, "loc": { "start": { "line": 3, "column": 8 }, "end": { "line": 3, "column": 59 } } }, { "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": 132, "end": 136, "loc": { "start": { "line": 4, "column": 8 }, "end": { "line": 4, "column": 12 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 136, "end": 137, "loc": { "start": { "line": 4, "column": 12 }, "end": { "line": 4, "column": 13 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "app", "start": 137, "end": 140, "loc": { "start": { "line": 4, "column": 13 }, "end": { "line": 4, "column": 16 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 141, "end": 142, "loc": { "start": { "line": 4, "column": 17 }, "end": { "line": 4, "column": 18 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "app", "start": 143, "end": 146, "loc": { "start": { "line": 4, "column": 19 }, "end": { "line": 4, "column": 22 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 146, "end": 147, "loc": { "start": { "line": 4, "column": 22 }, "end": { "line": 4, "column": 23 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 153, "end": 154, "loc": { "start": { "line": 5, "column": 4 }, "end": { "line": 5, "column": 5 } } }, { "type": "CommentBlock", "value": "*\r\n * Initializes the analytics\r\n * @returns {Promise}\r\n ", "start": 162, "end": 241, "loc": { "start": { "line": 7, "column": 4 }, "end": { "line": 10, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "initialize", "start": 247, "end": 257, "loc": { "start": { "line": 11, "column": 4 }, "end": { "line": 11, "column": 14 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 257, "end": 258, "loc": { "start": { "line": 11, "column": 14 }, "end": { "line": 11, "column": 15 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 258, "end": 259, "loc": { "start": { "line": 11, "column": 15 }, "end": { "line": 11, "column": 16 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 260, "end": 261, "loc": { "start": { "line": 11, "column": 17 }, "end": { "line": 11, "column": 18 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "abstract", "start": 271, "end": 279, "loc": { "start": { "line": 12, "column": 8 }, "end": { "line": 12, "column": 16 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 279, "end": 280, "loc": { "start": { "line": 12, "column": 16 }, "end": { "line": 12, "column": 17 } } }, { "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": 290, "end": 296, "loc": { "start": { "line": 13, "column": 8 }, "end": { "line": 13, "column": 14 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "Promise", "start": 297, "end": 304, "loc": { "start": { "line": 13, "column": 15 }, "end": { "line": 13, "column": 22 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 304, "end": 305, "loc": { "start": { "line": 13, "column": 22 }, "end": { "line": 13, "column": 23 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "reject", "start": 305, "end": 311, "loc": { "start": { "line": 13, "column": 23 }, "end": { "line": 13, "column": 29 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 311, "end": 312, "loc": { "start": { "line": 13, "column": 29 }, "end": { "line": 13, "column": 30 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 312, "end": 313, "loc": { "start": { "line": 13, "column": 30 }, "end": { "line": 13, "column": 31 } } }, { "type": { "label": ";", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 313, "end": 314, "loc": { "start": { "line": 13, "column": 31 }, "end": { "line": 13, "column": 32 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 320, "end": 321, "loc": { "start": { "line": 14, "column": 4 }, "end": { "line": 14, "column": 5 } } }, { "type": "CommentBlock", "value": "*\r\n * Handles a new game which was started\r\n ", "start": 329, "end": 386, "loc": { "start": { "line": 16, "column": 4 }, "end": { "line": 18, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "handleGameStarted", "start": 392, "end": 409, "loc": { "start": { "line": 19, "column": 4 }, "end": { "line": 19, "column": 21 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 409, "end": 410, "loc": { "start": { "line": 19, "column": 21 }, "end": { "line": 19, "column": 22 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 410, "end": 411, "loc": { "start": { "line": 19, "column": 22 }, "end": { "line": 19, "column": 23 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 412, "end": 413, "loc": { "start": { "line": 19, "column": 24 }, "end": { "line": 19, "column": 25 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 413, "end": 414, "loc": { "start": { "line": 19, "column": 25 }, "end": { "line": 19, "column": 26 } } }, { "type": "CommentBlock", "value": "*\r\n * Handles a resumed game\r\n ", "start": 422, "end": 465, "loc": { "start": { "line": 21, "column": 4 }, "end": { "line": 23, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "handleGameResumed", "start": 471, "end": 488, "loc": { "start": { "line": 24, "column": 4 }, "end": { "line": 24, "column": 21 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 488, "end": 489, "loc": { "start": { "line": 24, "column": 21 }, "end": { "line": 24, "column": 22 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 489, "end": 490, "loc": { "start": { "line": 24, "column": 22 }, "end": { "line": 24, "column": 23 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 491, "end": 492, "loc": { "start": { "line": 24, "column": 24 }, "end": { "line": 24, "column": 25 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 492, "end": 493, "loc": { "start": { "line": 24, "column": 25 }, "end": { "line": 24, "column": 26 } } }, { "type": "CommentBlock", "value": "*\r\n * Handles the given level completed\r\n * @param {number} level\r\n ", "start": 501, "end": 585, "loc": { "start": { "line": 26, "column": 4 }, "end": { "line": 29, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "handleLevelCompleted", "start": 591, "end": 611, "loc": { "start": { "line": 30, "column": 4 }, "end": { "line": 30, "column": 24 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 611, "end": 612, "loc": { "start": { "line": 30, "column": 24 }, "end": { "line": 30, "column": 25 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "level", "start": 612, "end": 617, "loc": { "start": { "line": 30, "column": 25 }, "end": { "line": 30, "column": 30 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 617, "end": 618, "loc": { "start": { "line": 30, "column": 30 }, "end": { "line": 30, "column": 31 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 619, "end": 620, "loc": { "start": { "line": 30, "column": 32 }, "end": { "line": 30, "column": 33 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 620, "end": 621, "loc": { "start": { "line": 30, "column": 33 }, "end": { "line": 30, "column": 34 } } }, { "type": "CommentBlock", "value": "*\r\n * Handles the given upgrade completed\r\n * @param {string} id\r\n * @param {number} level\r\n ", "start": 629, "end": 742, "loc": { "start": { "line": 32, "column": 4 }, "end": { "line": 36, "column": 7 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "handleUpgradeUnlocked", "start": 748, "end": 769, "loc": { "start": { "line": 37, "column": 4 }, "end": { "line": 37, "column": 25 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 769, "end": 770, "loc": { "start": { "line": 37, "column": 25 }, "end": { "line": 37, "column": 26 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "id", "start": 770, "end": 772, "loc": { "start": { "line": 37, "column": 26 }, "end": { "line": 37, "column": 28 } } }, { "type": { "label": ",", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 772, "end": 773, "loc": { "start": { "line": 37, "column": 28 }, "end": { "line": 37, "column": 29 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "level", "start": 774, "end": 779, "loc": { "start": { "line": 37, "column": 30 }, "end": { "line": 37, "column": 35 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 779, "end": 780, "loc": { "start": { "line": 37, "column": 35 }, "end": { "line": 37, "column": 36 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 781, "end": 782, "loc": { "start": { "line": 37, "column": 37 }, "end": { "line": 37, "column": 38 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 782, "end": 783, "loc": { "start": { "line": 37, "column": 38 }, "end": { "line": 37, "column": 39 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 785, "end": 786, "loc": { "start": { "line": 38, "column": 0 }, "end": { "line": 38, "column": 1 } } }, { "type": { "label": "eof", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 786, "end": 786, "loc": { "start": { "line": 38, "column": 1 }, "end": { "line": 38, "column": 1 } } } ] }