{ "type": "File", "start": 0, "end": 1144, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 48, "column": 0 } }, "program": { "type": "Program", "start": 0, "end": 1144, "loc": { "start": { "line": 1, "column": 0 }, "end": { "line": 48, "column": 0 } }, "sourceType": "module", "body": [ { "type": "ImportDeclaration", "start": 1, "end": 63, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 2, "column": 62 } }, "specifiers": [ { "type": "ImportSpecifier", "start": 10, "end": 29, "loc": { "start": { "line": 2, "column": 9 }, "end": { "line": 2, "column": 28 } }, "imported": { "type": "Identifier", "start": 10, "end": 29, "loc": { "start": { "line": 2, "column": 9 }, "end": { "line": 2, "column": 28 }, "identifierName": "createMutualExclude" }, "name": "createMutualExclude" }, "local": { "type": "Identifier", "start": 10, "end": 29, "loc": { "start": { "line": 2, "column": 9 }, "end": { "line": 2, "column": 28 }, "identifierName": "createMutualExclude" }, "name": "createMutualExclude" } } ], "source": { "type": "StringLiteral", "start": 37, "end": 63, "loc": { "start": { "line": 2, "column": 36 }, "end": { "line": 2, "column": 62 } }, "extra": { "rawValue": "../Util/mutualExclude.js", "raw": "'../Util/mutualExclude.js'" }, "value": "../Util/mutualExclude.js", "leadingComments": null, "trailingComments": null }, "trailingComments": [ { "type": "CommentBlock", "value": "*\n * Abstract class for bindings.\n *\n * A binding handles data binding from a Yjs type to a data object. For example,\n * you can bind a Quill editor instance to a YText instance with the `QuillBinding` class.\n *\n * It is expected that a concrete implementation accepts two parameters\n * (type and binding target).\n *\n * @example\n * const quill = new Quill(document.createElement('div'))\n * const type = y.define('quill', Y.Text)\n * const binding = new Y.QuillBinding(quill, type)\n *\n ", "start": 65, "end": 559, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 18, "column": 3 } } } ] }, { "type": "ExportDefaultDeclaration", "start": 560, "end": 1143, "loc": { "start": { "line": 19, "column": 0 }, "end": { "line": 47, "column": 1 } }, "declaration": { "type": "ClassDeclaration", "start": 575, "end": 1143, "loc": { "start": { "line": 19, "column": 15 }, "end": { "line": 47, "column": 1 } }, "id": { "type": "Identifier", "start": 581, "end": 588, "loc": { "start": { "line": 19, "column": 21 }, "end": { "line": 19, "column": 28 }, "identifierName": "Binding" }, "name": "Binding", "leadingComments": null }, "superClass": null, "body": { "type": "ClassBody", "start": 589, "end": 1143, "loc": { "start": { "line": 19, "column": 29 }, "end": { "line": 47, "column": 1 } }, "body": [ { "type": "ClassMethod", "start": 681, "end": 998, "loc": { "start": { "line": 24, "column": 2 }, "end": { "line": 39, "column": 3 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 681, "end": 692, "loc": { "start": { "line": 24, "column": 2 }, "end": { "line": 24, "column": 13 }, "identifierName": "constructor" }, "name": "constructor", "leadingComments": null }, "kind": "constructor", "id": null, "generator": false, "expression": false, "async": false, "params": [ { "type": "Identifier", "start": 694, "end": 698, "loc": { "start": { "line": 24, "column": 15 }, "end": { "line": 24, "column": 19 }, "identifierName": "type" }, "name": "type" }, { "type": "Identifier", "start": 700, "end": 706, "loc": { "start": { "line": 24, "column": 21 }, "end": { "line": 24, "column": 27 }, "identifierName": "target" }, "name": "target" } ], "body": { "type": "BlockStatement", "start": 708, "end": 998, "loc": { "start": { "line": 24, "column": 29 }, "end": { "line": 39, "column": 3 } }, "body": [ { "type": "ExpressionStatement", "start": 797, "end": 813, "loc": { "start": { "line": 29, "column": 4 }, "end": { "line": 29, "column": 20 } }, "expression": { "type": "AssignmentExpression", "start": 797, "end": 813, "loc": { "start": { "line": 29, "column": 4 }, "end": { "line": 29, "column": 20 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 797, "end": 806, "loc": { "start": { "line": 29, "column": 4 }, "end": { "line": 29, "column": 13 } }, "object": { "type": "ThisExpression", "start": 797, "end": 801, "loc": { "start": { "line": 29, "column": 4 }, "end": { "line": 29, "column": 8 } }, "leadingComments": null }, "property": { "type": "Identifier", "start": 802, "end": 806, "loc": { "start": { "line": 29, "column": 9 }, "end": { "line": 29, "column": 13 }, "identifierName": "type" }, "name": "type" }, "computed": false, "leadingComments": null }, "right": { "type": "Identifier", "start": 809, "end": 813, "loc": { "start": { "line": 29, "column": 16 }, "end": { "line": 29, "column": 20 }, "identifierName": "type" }, "name": "type", "leadingComments": null, "trailingComments": null }, "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * The Yjs type that is bound to `target`\n * @type {YType}\n ", "start": 714, "end": 792, "loc": { "start": { "line": 25, "column": 4 }, "end": { "line": 28, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\n * The target that `type` is bound to.\n * @type {*}\n ", "start": 818, "end": 889, "loc": { "start": { "line": 30, "column": 4 }, "end": { "line": 33, "column": 7 } } } ] }, { "type": "ExpressionStatement", "start": 894, "end": 914, "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": 24 } }, "expression": { "type": "AssignmentExpression", "start": 894, "end": 914, "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": 24 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 894, "end": 905, "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": 15 } }, "object": { "type": "ThisExpression", "start": 894, "end": 898, "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": 8 } }, "leadingComments": null }, "property": { "type": "Identifier", "start": 899, "end": 905, "loc": { "start": { "line": 34, "column": 9 }, "end": { "line": 34, "column": 15 }, "identifierName": "target" }, "name": "target" }, "computed": false, "leadingComments": null }, "right": { "type": "Identifier", "start": 908, "end": 914, "loc": { "start": { "line": 34, "column": 18 }, "end": { "line": 34, "column": 24 }, "identifierName": "target" }, "name": "target", "leadingComments": null, "trailingComments": null }, "leadingComments": null, "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * The target that `type` is bound to.\n * @type {*}\n ", "start": 818, "end": 889, "loc": { "start": { "line": 30, "column": 4 }, "end": { "line": 33, "column": 7 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\n * @private\n ", "start": 919, "end": 946, "loc": { "start": { "line": 35, "column": 4 }, "end": { "line": 37, "column": 7 } } } ] }, { "type": "ExpressionStatement", "start": 951, "end": 994, "loc": { "start": { "line": 38, "column": 4 }, "end": { "line": 38, "column": 47 } }, "expression": { "type": "AssignmentExpression", "start": 951, "end": 994, "loc": { "start": { "line": 38, "column": 4 }, "end": { "line": 38, "column": 47 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 951, "end": 970, "loc": { "start": { "line": 38, "column": 4 }, "end": { "line": 38, "column": 23 } }, "object": { "type": "ThisExpression", "start": 951, "end": 955, "loc": { "start": { "line": 38, "column": 4 }, "end": { "line": 38, "column": 8 } }, "leadingComments": null }, "property": { "type": "Identifier", "start": 956, "end": 970, "loc": { "start": { "line": 38, "column": 9 }, "end": { "line": 38, "column": 23 }, "identifierName": "_mutualExclude" }, "name": "_mutualExclude" }, "computed": false, "leadingComments": null }, "right": { "type": "CallExpression", "start": 973, "end": 994, "loc": { "start": { "line": 38, "column": 26 }, "end": { "line": 38, "column": 47 } }, "callee": { "type": "Identifier", "start": 973, "end": 992, "loc": { "start": { "line": 38, "column": 26 }, "end": { "line": 38, "column": 45 }, "identifierName": "createMutualExclude" }, "name": "createMutualExclude" }, "arguments": [] }, "leadingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * @private\n ", "start": 919, "end": 946, "loc": { "start": { "line": 35, "column": 4 }, "end": { "line": 37, "column": 7 } } } ] } ], "directives": [], "trailingComments": null }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * @param {YType} type Yjs type.\n * @param {any} target Binding Target.\n ", "start": 593, "end": 678, "loc": { "start": { "line": 20, "column": 2 }, "end": { "line": 23, "column": 5 } } } ], "trailingComments": [ { "type": "CommentBlock", "value": "*\n * Remove all data observers (both from the type and the target).\n ", "start": 1001, "end": 1078, "loc": { "start": { "line": 40, "column": 2 }, "end": { "line": 42, "column": 5 } } } ] }, { "type": "ClassMethod", "start": 1081, "end": 1141, "loc": { "start": { "line": 43, "column": 2 }, "end": { "line": 46, "column": 3 } }, "static": false, "computed": false, "key": { "type": "Identifier", "start": 1081, "end": 1088, "loc": { "start": { "line": 43, "column": 2 }, "end": { "line": 43, "column": 9 }, "identifierName": "destroy" }, "name": "destroy", "leadingComments": null }, "kind": "method", "id": null, "generator": false, "expression": false, "async": false, "params": [], "body": { "type": "BlockStatement", "start": 1092, "end": 1141, "loc": { "start": { "line": 43, "column": 13 }, "end": { "line": 46, "column": 3 } }, "body": [ { "type": "ExpressionStatement", "start": 1098, "end": 1114, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 44, "column": 20 } }, "expression": { "type": "AssignmentExpression", "start": 1098, "end": 1114, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 44, "column": 20 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 1098, "end": 1107, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 44, "column": 13 } }, "object": { "type": "ThisExpression", "start": 1098, "end": 1102, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 44, "column": 8 } } }, "property": { "type": "Identifier", "start": 1103, "end": 1107, "loc": { "start": { "line": 44, "column": 9 }, "end": { "line": 44, "column": 13 }, "identifierName": "type" }, "name": "type" }, "computed": false }, "right": { "type": "NullLiteral", "start": 1110, "end": 1114, "loc": { "start": { "line": 44, "column": 16 }, "end": { "line": 44, "column": 20 } } } } }, { "type": "ExpressionStatement", "start": 1119, "end": 1137, "loc": { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 22 } }, "expression": { "type": "AssignmentExpression", "start": 1119, "end": 1137, "loc": { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 22 } }, "operator": "=", "left": { "type": "MemberExpression", "start": 1119, "end": 1130, "loc": { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 15 } }, "object": { "type": "ThisExpression", "start": 1119, "end": 1123, "loc": { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 8 } } }, "property": { "type": "Identifier", "start": 1124, "end": 1130, "loc": { "start": { "line": 45, "column": 9 }, "end": { "line": 45, "column": 15 }, "identifierName": "target" }, "name": "target" }, "computed": false }, "right": { "type": "NullLiteral", "start": 1133, "end": 1137, "loc": { "start": { "line": 45, "column": 18 }, "end": { "line": 45, "column": 22 } } } } } ], "directives": [] }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * Remove all data observers (both from the type and the target).\n ", "start": 1001, "end": 1078, "loc": { "start": { "line": 40, "column": 2 }, "end": { "line": 42, "column": 5 } } } ] } ] }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * Abstract class for bindings.\n *\n * A binding handles data binding from a Yjs type to a data object. For example,\n * you can bind a Quill editor instance to a YText instance with the `QuillBinding` class.\n *\n * It is expected that a concrete implementation accepts two parameters\n * (type and binding target).\n *\n * @example\n * const quill = new Quill(document.createElement('div'))\n * const type = y.define('quill', Y.Text)\n * const binding = new Y.QuillBinding(quill, type)\n *\n ", "start": 65, "end": 559, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 18, "column": 3 } } } ], "trailingComments": [] }, "leadingComments": [ { "type": "CommentBlock", "value": "*\n * Abstract class for bindings.\n *\n * A binding handles data binding from a Yjs type to a data object. For example,\n * you can bind a Quill editor instance to a YText instance with the `QuillBinding` class.\n *\n * It is expected that a concrete implementation accepts two parameters\n * (type and binding target).\n *\n * @example\n * const quill = new Quill(document.createElement('div'))\n * const type = y.define('quill', Y.Text)\n * const binding = new Y.QuillBinding(quill, type)\n *\n ", "start": 65, "end": 559, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 18, "column": 3 } } } ] } ], "directives": [] }, "comments": [ { "type": "CommentBlock", "value": "*\n * Abstract class for bindings.\n *\n * A binding handles data binding from a Yjs type to a data object. For example,\n * you can bind a Quill editor instance to a YText instance with the `QuillBinding` class.\n *\n * It is expected that a concrete implementation accepts two parameters\n * (type and binding target).\n *\n * @example\n * const quill = new Quill(document.createElement('div'))\n * const type = y.define('quill', Y.Text)\n * const binding = new Y.QuillBinding(quill, type)\n *\n ", "start": 65, "end": 559, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 18, "column": 3 } } }, { "type": "CommentBlock", "value": "*\n * @param {YType} type Yjs type.\n * @param {any} target Binding Target.\n ", "start": 593, "end": 678, "loc": { "start": { "line": 20, "column": 2 }, "end": { "line": 23, "column": 5 } } }, { "type": "CommentBlock", "value": "*\n * The Yjs type that is bound to `target`\n * @type {YType}\n ", "start": 714, "end": 792, "loc": { "start": { "line": 25, "column": 4 }, "end": { "line": 28, "column": 7 } } }, { "type": "CommentBlock", "value": "*\n * The target that `type` is bound to.\n * @type {*}\n ", "start": 818, "end": 889, "loc": { "start": { "line": 30, "column": 4 }, "end": { "line": 33, "column": 7 } } }, { "type": "CommentBlock", "value": "*\n * @private\n ", "start": 919, "end": 946, "loc": { "start": { "line": 35, "column": 4 }, "end": { "line": 37, "column": 7 } } }, { "type": "CommentBlock", "value": "*\n * Remove all data observers (both from the type and the target).\n ", "start": 1001, "end": 1078, "loc": { "start": { "line": 40, "column": 2 }, "end": { "line": 42, "column": 5 } } } ], "tokens": [ { "type": { "label": "import", "keyword": "import", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "import", "start": 1, "end": 7, "loc": { "start": { "line": 2, "column": 0 }, "end": { "line": 2, "column": 6 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 8, "end": 9, "loc": { "start": { "line": 2, "column": 7 }, "end": { "line": 2, "column": 8 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "createMutualExclude", "start": 10, "end": 29, "loc": { "start": { "line": 2, "column": 9 }, "end": { "line": 2, "column": 28 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 30, "end": 31, "loc": { "start": { "line": 2, "column": 29 }, "end": { "line": 2, "column": 30 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "from", "start": 32, "end": 36, "loc": { "start": { "line": 2, "column": 31 }, "end": { "line": 2, "column": 35 } } }, { "type": { "label": "string", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "../Util/mutualExclude.js", "start": 37, "end": 63, "loc": { "start": { "line": 2, "column": 36 }, "end": { "line": 2, "column": 62 } } }, { "type": "CommentBlock", "value": "*\n * Abstract class for bindings.\n *\n * A binding handles data binding from a Yjs type to a data object. For example,\n * you can bind a Quill editor instance to a YText instance with the `QuillBinding` class.\n *\n * It is expected that a concrete implementation accepts two parameters\n * (type and binding target).\n *\n * @example\n * const quill = new Quill(document.createElement('div'))\n * const type = y.define('quill', Y.Text)\n * const binding = new Y.QuillBinding(quill, type)\n *\n ", "start": 65, "end": 559, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 18, "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": 560, "end": 566, "loc": { "start": { "line": 19, "column": 0 }, "end": { "line": 19, "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": 567, "end": 574, "loc": { "start": { "line": 19, "column": 7 }, "end": { "line": 19, "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": 575, "end": 580, "loc": { "start": { "line": 19, "column": 15 }, "end": { "line": 19, "column": 20 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "Binding", "start": 581, "end": 588, "loc": { "start": { "line": 19, "column": 21 }, "end": { "line": 19, "column": 28 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 589, "end": 590, "loc": { "start": { "line": 19, "column": 29 }, "end": { "line": 19, "column": 30 } } }, { "type": "CommentBlock", "value": "*\n * @param {YType} type Yjs type.\n * @param {any} target Binding Target.\n ", "start": 593, "end": 678, "loc": { "start": { "line": 20, "column": 2 }, "end": { "line": 23, "column": 5 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "constructor", "start": 681, "end": 692, "loc": { "start": { "line": 24, "column": 2 }, "end": { "line": 24, "column": 13 } } }, { "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": 24, "column": 14 }, "end": { "line": 24, "column": 15 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "type", "start": 694, "end": 698, "loc": { "start": { "line": 24, "column": 15 }, "end": { "line": 24, "column": 19 } } }, { "type": { "label": ",", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 698, "end": 699, "loc": { "start": { "line": 24, "column": 19 }, "end": { "line": 24, "column": 20 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 700, "end": 706, "loc": { "start": { "line": 24, "column": 21 }, "end": { "line": 24, "column": 27 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 706, "end": 707, "loc": { "start": { "line": 24, "column": 27 }, "end": { "line": 24, "column": 28 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 708, "end": 709, "loc": { "start": { "line": 24, "column": 29 }, "end": { "line": 24, "column": 30 } } }, { "type": "CommentBlock", "value": "*\n * The Yjs type that is bound to `target`\n * @type {YType}\n ", "start": 714, "end": 792, "loc": { "start": { "line": 25, "column": 4 }, "end": { "line": 28, "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": 797, "end": 801, "loc": { "start": { "line": 29, "column": 4 }, "end": { "line": 29, "column": 8 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 801, "end": 802, "loc": { "start": { "line": 29, "column": 8 }, "end": { "line": 29, "column": 9 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "type", "start": 802, "end": 806, "loc": { "start": { "line": 29, "column": 9 }, "end": { "line": 29, "column": 13 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 807, "end": 808, "loc": { "start": { "line": 29, "column": 14 }, "end": { "line": 29, "column": 15 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "type", "start": 809, "end": 813, "loc": { "start": { "line": 29, "column": 16 }, "end": { "line": 29, "column": 20 } } }, { "type": "CommentBlock", "value": "*\n * The target that `type` is bound to.\n * @type {*}\n ", "start": 818, "end": 889, "loc": { "start": { "line": 30, "column": 4 }, "end": { "line": 33, "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": 894, "end": 898, "loc": { "start": { "line": 34, "column": 4 }, "end": { "line": 34, "column": 8 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 898, "end": 899, "loc": { "start": { "line": 34, "column": 8 }, "end": { "line": 34, "column": 9 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 899, "end": 905, "loc": { "start": { "line": 34, "column": 9 }, "end": { "line": 34, "column": 15 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 906, "end": 907, "loc": { "start": { "line": 34, "column": 16 }, "end": { "line": 34, "column": 17 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 908, "end": 914, "loc": { "start": { "line": 34, "column": 18 }, "end": { "line": 34, "column": 24 } } }, { "type": "CommentBlock", "value": "*\n * @private\n ", "start": 919, "end": 946, "loc": { "start": { "line": 35, "column": 4 }, "end": { "line": 37, "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": 951, "end": 955, "loc": { "start": { "line": 38, "column": 4 }, "end": { "line": 38, "column": 8 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 955, "end": 956, "loc": { "start": { "line": 38, "column": 8 }, "end": { "line": 38, "column": 9 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "_mutualExclude", "start": 956, "end": 970, "loc": { "start": { "line": 38, "column": 9 }, "end": { "line": 38, "column": 23 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 971, "end": 972, "loc": { "start": { "line": 38, "column": 24 }, "end": { "line": 38, "column": 25 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "createMutualExclude", "start": 973, "end": 992, "loc": { "start": { "line": 38, "column": 26 }, "end": { "line": 38, "column": 45 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 992, "end": 993, "loc": { "start": { "line": 38, "column": 45 }, "end": { "line": 38, "column": 46 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 993, "end": 994, "loc": { "start": { "line": 38, "column": 46 }, "end": { "line": 38, "column": 47 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 997, "end": 998, "loc": { "start": { "line": 39, "column": 2 }, "end": { "line": 39, "column": 3 } } }, { "type": "CommentBlock", "value": "*\n * Remove all data observers (both from the type and the target).\n ", "start": 1001, "end": 1078, "loc": { "start": { "line": 40, "column": 2 }, "end": { "line": 42, "column": 5 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "destroy", "start": 1081, "end": 1088, "loc": { "start": { "line": 43, "column": 2 }, "end": { "line": 43, "column": 9 } } }, { "type": { "label": "(", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1089, "end": 1090, "loc": { "start": { "line": 43, "column": 10 }, "end": { "line": 43, "column": 11 } } }, { "type": { "label": ")", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1090, "end": 1091, "loc": { "start": { "line": 43, "column": 11 }, "end": { "line": 43, "column": 12 } } }, { "type": { "label": "{", "beforeExpr": true, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1092, "end": 1093, "loc": { "start": { "line": 43, "column": 13 }, "end": { "line": 43, "column": 14 } } }, { "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": 1098, "end": 1102, "loc": { "start": { "line": 44, "column": 4 }, "end": { "line": 44, "column": 8 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 1102, "end": 1103, "loc": { "start": { "line": 44, "column": 8 }, "end": { "line": 44, "column": 9 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "type", "start": 1103, "end": 1107, "loc": { "start": { "line": 44, "column": 9 }, "end": { "line": 44, "column": 13 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 1108, "end": 1109, "loc": { "start": { "line": 44, "column": 14 }, "end": { "line": 44, "column": 15 } } }, { "type": { "label": "null", "keyword": "null", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "null", "start": 1110, "end": 1114, "loc": { "start": { "line": 44, "column": 16 }, "end": { "line": 44, "column": 20 } } }, { "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": 1119, "end": 1123, "loc": { "start": { "line": 45, "column": 4 }, "end": { "line": 45, "column": 8 } } }, { "type": { "label": ".", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 1123, "end": 1124, "loc": { "start": { "line": 45, "column": 8 }, "end": { "line": 45, "column": 9 } } }, { "type": { "label": "name", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "value": "target", "start": 1124, "end": 1130, "loc": { "start": { "line": 45, "column": 9 }, "end": { "line": 45, "column": 15 } } }, { "type": { "label": "=", "beforeExpr": true, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": true, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "=", "start": 1131, "end": 1132, "loc": { "start": { "line": 45, "column": 16 }, "end": { "line": 45, "column": 17 } } }, { "type": { "label": "null", "keyword": "null", "beforeExpr": false, "startsExpr": true, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "value": "null", "start": 1133, "end": 1137, "loc": { "start": { "line": 45, "column": 18 }, "end": { "line": 45, "column": 22 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1140, "end": 1141, "loc": { "start": { "line": 46, "column": 2 }, "end": { "line": 46, "column": 3 } } }, { "type": { "label": "}", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null }, "start": 1142, "end": 1143, "loc": { "start": { "line": 47, "column": 0 }, "end": { "line": 47, "column": 1 } } }, { "type": { "label": "eof", "beforeExpr": false, "startsExpr": false, "rightAssociative": false, "isLoop": false, "isAssign": false, "prefix": false, "postfix": false, "binop": null, "updateContext": null }, "start": 1144, "end": 1144, "loc": { "start": { "line": 48, "column": 0 }, "end": { "line": 48, "column": 0 } } } ] }