{ "type": "Script", "span": { "start": 18, "end": 936, "ctxt": 0 }, "body": [ { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 27, "end": 29, "ctxt": 0 }, "value": "f1", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 30, "end": 49, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 30, "end": 49, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 33, "end": 49, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 35, "end": 49, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 37, "end": 47, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 37, "end": 38, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 39, "end": 47, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 41, "end": 47, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 18, "end": 192, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 51, "end": 192, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 57, "end": 190, "ctxt": 0 }, "test": { "type": "MemberExpression", "span": { "start": 61, "end": 66, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 61, "end": 64, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Identifier", "span": { "start": 65, "end": 66, "ctxt": 0 }, "value": "a", "optional": false } }, "consequent": { "type": "BlockStatement", "span": { "start": 68, "end": 190, "ctxt": 0 }, "stmts": [ { "type": "ExpressionStatement", "span": { "start": 78, "end": 87, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 78, "end": 86, "ctxt": 0 }, "operator": "=", "left": { "type": "Identifier", "span": { "start": 78, "end": 81, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": null }, "right": { "type": "ObjectExpression", "span": { "start": 84, "end": 86, "ctxt": 0 }, "properties": [] } } }, { "type": "VariableDeclaration", "span": { "start": 96, "end": 114, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 100, "end": 113, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 100, "end": 102, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 105, "end": 113, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 105, "end": 108, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 108, "end": 113, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 109, "end": 112, "ctxt": 0 }, "value": "a", "raw": "\"a\"" } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 146, "end": 161, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 150, "end": 160, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 150, "end": 152, "ctxt": 0 }, "value": "a2", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 155, "end": 160, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 155, "end": 158, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Identifier", "span": { "start": 159, "end": 160, "ctxt": 0 }, "value": "a", "optional": false } }, "definite": false } ] } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 203, "end": 205, "ctxt": 0 }, "value": "f2", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 206, "end": 236, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 206, "end": 236, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 209, "end": 236, "ctxt": 0 }, "typeAnnotation": { "type": "TsUnionType", "span": { "start": 211, "end": 236, "ctxt": 0 }, "types": [ { "type": "TsTupleType", "span": { "start": 211, "end": 227, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 212, "end": 218, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 212, "end": 218, "ctxt": 0 }, "kind": "number" } }, { "type": "TsTupleElement", "span": { "start": 220, "end": 226, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 220, "end": 226, "ctxt": 0 }, "kind": "string" } } ] }, { "type": "TsArrayType", "span": { "start": 230, "end": 236, "ctxt": 0 }, "elemType": { "type": "TsKeywordType", "span": { "start": 230, "end": 234, "ctxt": 0 }, "kind": "null" } } ] } } } } ], "decorators": [], "span": { "start": 194, "end": 525, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 238, "end": 525, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 244, "end": 260, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 248, "end": 259, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 248, "end": 250, "ctxt": 0 }, "value": "a0", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 253, "end": 259, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 253, "end": 256, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 256, "end": 259, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 257, "end": 258, "ctxt": 0 }, "value": 0.0 } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 283, "end": 299, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 287, "end": 298, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 287, "end": 289, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 292, "end": 298, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 292, "end": 295, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 295, "end": 298, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 296, "end": 297, "ctxt": 0 }, "value": 1.0 } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 322, "end": 341, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 326, "end": 340, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 326, "end": 334, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 327, "end": 329, "ctxt": 0 }, "value": "b0", "optional": false, "typeAnnotation": null }, { "type": "Identifier", "span": { "start": 331, "end": 333, "ctxt": 0 }, "value": "b1", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 337, "end": 340, "ctxt": 0 }, "value": "obj", "optional": false }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 346, "end": 363, "ctxt": 0 }, "expression": { "type": "ParenthesisExpression", "span": { "start": 346, "end": 362, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 347, "end": 361, "ctxt": 0 }, "operator": "=", "left": { "type": "ArrayPattern", "span": { "start": 347, "end": 355, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 348, "end": 350, "ctxt": 0 }, "value": "a0", "optional": false, "typeAnnotation": null }, { "type": "Identifier", "span": { "start": 352, "end": 354, "ctxt": 0 }, "value": "a1", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 358, "end": 361, "ctxt": 0 }, "value": "obj", "optional": false } } } }, { "type": "IfStatement", "span": { "start": 368, "end": 523, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 372, "end": 388, "ctxt": 0 }, "operator": "&&", "left": { "type": "MemberExpression", "span": { "start": 372, "end": 378, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 372, "end": 375, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 375, "end": 378, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 376, "end": 377, "ctxt": 0 }, "value": 0.0 } } }, "right": { "type": "MemberExpression", "span": { "start": 382, "end": 388, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 382, "end": 385, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 385, "end": 388, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 386, "end": 387, "ctxt": 0 }, "value": 1.0 } } } }, "consequent": { "type": "BlockStatement", "span": { "start": 390, "end": 523, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 400, "end": 416, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 404, "end": 415, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 404, "end": 406, "ctxt": 0 }, "value": "c0", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 409, "end": 415, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 409, "end": 412, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 412, "end": 415, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 413, "end": 414, "ctxt": 0 }, "value": 0.0 } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 436, "end": 452, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 440, "end": 451, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 440, "end": 442, "ctxt": 0 }, "value": "c1", "optional": false, "typeAnnotation": null }, "init": { "type": "MemberExpression", "span": { "start": 445, "end": 451, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 445, "end": 448, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Computed", "span": { "start": 448, "end": 451, "ctxt": 0 }, "expression": { "type": "NumericLiteral", "span": { "start": 449, "end": 450, "ctxt": 0 }, "value": 1.0 } } }, "definite": false } ] }, { "type": "VariableDeclaration", "span": { "start": 472, "end": 491, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 476, "end": 490, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 476, "end": 484, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 477, "end": 479, "ctxt": 0 }, "value": "d0", "optional": false, "typeAnnotation": null }, { "type": "Identifier", "span": { "start": 481, "end": 483, "ctxt": 0 }, "value": "d1", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 487, "end": 490, "ctxt": 0 }, "value": "obj", "optional": false }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 500, "end": 517, "ctxt": 0 }, "expression": { "type": "ParenthesisExpression", "span": { "start": 500, "end": 516, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 501, "end": 515, "ctxt": 0 }, "operator": "=", "left": { "type": "ArrayPattern", "span": { "start": 501, "end": 509, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 502, "end": 504, "ctxt": 0 }, "value": "c0", "optional": false, "typeAnnotation": null }, { "type": "Identifier", "span": { "start": 506, "end": 508, "ctxt": 0 }, "value": "c1", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 512, "end": 515, "ctxt": 0 }, "value": "obj", "optional": false } } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 536, "end": 538, "ctxt": 0 }, "value": "f3", "optional": false }, "declare": false, "params": [ { "type": "Parameter", "span": { "start": 539, "end": 570, "ctxt": 0 }, "decorators": [], "pat": { "type": "Identifier", "span": { "start": 539, "end": 570, "ctxt": 0 }, "value": "obj", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 542, "end": 570, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeLiteral", "span": { "start": 544, "end": 570, "ctxt": 0 }, "members": [ { "type": "TsPropertySignature", "span": { "start": 546, "end": 557, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 546, "end": 547, "ctxt": 0 }, "value": "a", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 548, "end": 556, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 550, "end": 556, "ctxt": 0 }, "kind": "number" } }, "typeParams": null }, { "type": "TsPropertySignature", "span": { "start": 558, "end": 568, "ctxt": 0 }, "readonly": false, "key": { "type": "Identifier", "span": { "start": 558, "end": 559, "ctxt": 0 }, "value": "b", "optional": false }, "computed": false, "optional": true, "init": null, "params": [], "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 560, "end": 568, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 562, "end": 568, "ctxt": 0 }, "kind": "string" } }, "typeParams": null } ] } } } } ], "decorators": [], "span": { "start": 527, "end": 680, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 572, "end": 680, "ctxt": 0 }, "stmts": [ { "type": "IfStatement", "span": { "start": 578, "end": 678, "ctxt": 0 }, "test": { "type": "BinaryExpression", "span": { "start": 582, "end": 596, "ctxt": 0 }, "operator": "&&", "left": { "type": "MemberExpression", "span": { "start": 582, "end": 587, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 582, "end": 585, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Identifier", "span": { "start": 586, "end": 587, "ctxt": 0 }, "value": "a", "optional": false } }, "right": { "type": "MemberExpression", "span": { "start": 591, "end": 596, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 591, "end": 594, "ctxt": 0 }, "value": "obj", "optional": false }, "property": { "type": "Identifier", "span": { "start": 595, "end": 596, "ctxt": 0 }, "value": "b", "optional": false } } }, "consequent": { "type": "BlockStatement", "span": { "start": 598, "end": 678, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 608, "end": 627, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 612, "end": 626, "ctxt": 0 }, "id": { "type": "ObjectPattern", "span": { "start": 612, "end": 620, "ctxt": 0 }, "properties": [ { "type": "AssignmentPatternProperty", "span": { "start": 614, "end": 615, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 614, "end": 615, "ctxt": 0 }, "value": "a", "optional": false }, "value": null }, { "type": "AssignmentPatternProperty", "span": { "start": 617, "end": 618, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 617, "end": 618, "ctxt": 0 }, "value": "b", "optional": false }, "value": null } ], "optional": false, "typeAnnotation": null }, "init": { "type": "Identifier", "span": { "start": 623, "end": 626, "ctxt": 0 }, "value": "obj", "optional": false }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 655, "end": 672, "ctxt": 0 }, "expression": { "type": "ParenthesisExpression", "span": { "start": 655, "end": 671, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 656, "end": 670, "ctxt": 0 }, "operator": "=", "left": { "type": "ObjectPattern", "span": { "start": 656, "end": 664, "ctxt": 0 }, "properties": [ { "type": "AssignmentPatternProperty", "span": { "start": 658, "end": 659, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 658, "end": 659, "ctxt": 0 }, "value": "a", "optional": false }, "value": null }, { "type": "AssignmentPatternProperty", "span": { "start": 661, "end": 662, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 661, "end": 662, "ctxt": 0 }, "value": "b", "optional": false }, "value": null } ], "optional": false, "typeAnnotation": null }, "right": { "type": "Identifier", "span": { "start": 667, "end": 670, "ctxt": 0 }, "value": "obj", "optional": false } } } } ] }, "alternate": null } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "FunctionDeclaration", "identifier": { "type": "Identifier", "span": { "start": 691, "end": 693, "ctxt": 0 }, "value": "f4", "optional": false }, "declare": false, "params": [], "decorators": [], "span": { "start": 682, "end": 819, "ctxt": 0 }, "body": { "type": "BlockStatement", "span": { "start": 696, "end": 819, "ctxt": 0 }, "stmts": [ { "type": "VariableDeclaration", "span": { "start": 702, "end": 717, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 706, "end": 716, "ctxt": 0 }, "id": { "type": "Identifier", "span": { "start": 706, "end": 707, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 707, "end": 716, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 709, "end": 716, "ctxt": 0 }, "kind": "boolean" } } }, "init": null, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 722, "end": 734, "ctxt": 0 }, "expression": { "type": "ParenthesisExpression", "span": { "start": 722, "end": 733, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 723, "end": 732, "ctxt": 0 }, "operator": "=", "left": { "type": "ObjectPattern", "span": { "start": 723, "end": 728, "ctxt": 0 }, "properties": [ { "type": "AssignmentPatternProperty", "span": { "start": 725, "end": 726, "ctxt": 0 }, "key": { "type": "Identifier", "span": { "start": 725, "end": 726, "ctxt": 0 }, "value": "x", "optional": false }, "value": null } ], "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 731, "end": 732, "ctxt": 0 }, "value": 0.0 } } } }, { "type": "ExpressionStatement", "span": { "start": 749, "end": 768, "ctxt": 0 }, "expression": { "type": "ParenthesisExpression", "span": { "start": 749, "end": 767, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 750, "end": 766, "ctxt": 0 }, "operator": "=", "left": { "type": "ObjectPattern", "span": { "start": 750, "end": 762, "ctxt": 0 }, "properties": [ { "type": "KeyValuePatternProperty", "key": { "type": "Computed", "span": { "start": 752, "end": 757, "ctxt": 0 }, "expression": { "type": "StringLiteral", "span": { "start": 753, "end": 756, "ctxt": 0 }, "value": "x", "raw": "\"x\"" } }, "value": { "type": "Identifier", "span": { "start": 759, "end": 760, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } } ], "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 765, "end": 766, "ctxt": 0 }, "value": 0.0 } } } }, { "type": "ExpressionStatement", "span": { "start": 783, "end": 807, "ctxt": 0 }, "expression": { "type": "ParenthesisExpression", "span": { "start": 783, "end": 806, "ctxt": 0 }, "expression": { "type": "AssignmentExpression", "span": { "start": 784, "end": 805, "ctxt": 0 }, "operator": "=", "left": { "type": "ObjectPattern", "span": { "start": 784, "end": 801, "ctxt": 0 }, "properties": [ { "type": "KeyValuePatternProperty", "key": { "type": "Computed", "span": { "start": 786, "end": 796, "ctxt": 0 }, "expression": { "type": "BinaryExpression", "span": { "start": 787, "end": 795, "ctxt": 0 }, "operator": "+", "left": { "type": "StringLiteral", "span": { "start": 787, "end": 790, "ctxt": 0 }, "value": "x", "raw": "\"x\"" }, "right": { "type": "StringLiteral", "span": { "start": 793, "end": 795, "ctxt": 0 }, "value": "", "raw": "\"\"" } } }, "value": { "type": "Identifier", "span": { "start": 798, "end": 799, "ctxt": 0 }, "value": "x", "optional": false, "typeAnnotation": null } } ], "optional": false, "typeAnnotation": null }, "right": { "type": "NumericLiteral", "span": { "start": 804, "end": 805, "ctxt": 0 }, "value": 0.0 } } } } ] }, "generator": false, "async": false, "typeParameters": null, "returnType": null }, { "type": "TsTypeAliasDeclaration", "span": { "start": 843, "end": 877, "ctxt": 0 }, "declare": false, "id": { "type": "Identifier", "span": { "start": 848, "end": 856, "ctxt": 0 }, "value": "KeyValue", "optional": false }, "typeParams": null, "typeAnnotation": { "type": "TsTupleType", "span": { "start": 859, "end": 876, "ctxt": 0 }, "elemTypes": [ { "type": "TsTupleElement", "span": { "start": 860, "end": 866, "ctxt": 0 }, "label": null, "ty": { "type": "TsKeywordType", "span": { "start": 860, "end": 866, "ctxt": 0 }, "kind": "string" } }, { "type": "TsTupleElement", "span": { "start": 868, "end": 875, "ctxt": 0 }, "label": null, "ty": { "type": "TsOptionalType", "span": { "start": 868, "end": 875, "ctxt": 0 }, "typeAnnotation": { "type": "TsKeywordType", "span": { "start": 868, "end": 874, "ctxt": 0 }, "kind": "string" } } } ] } }, { "type": "VariableDeclaration", "span": { "start": 878, "end": 915, "ctxt": 0 }, "kind": "let", "declare": false, "declarations": [ { "type": "VariableDeclarator", "span": { "start": 882, "end": 914, "ctxt": 0 }, "id": { "type": "ArrayPattern", "span": { "start": 882, "end": 894, "ctxt": 0 }, "elements": [ { "type": "Identifier", "span": { "start": 883, "end": 886, "ctxt": 0 }, "value": "key", "optional": false, "typeAnnotation": null }, { "type": "Identifier", "span": { "start": 888, "end": 893, "ctxt": 0 }, "value": "value", "optional": false, "typeAnnotation": null } ], "optional": false, "typeAnnotation": { "type": "TsTypeAnnotation", "span": { "start": 894, "end": 904, "ctxt": 0 }, "typeAnnotation": { "type": "TsTypeReference", "span": { "start": 896, "end": 904, "ctxt": 0 }, "typeName": { "type": "Identifier", "span": { "start": 896, "end": 904, "ctxt": 0 }, "value": "KeyValue", "optional": false }, "typeParams": null } } }, "init": { "type": "ArrayExpression", "span": { "start": 907, "end": 914, "ctxt": 0 }, "elements": [ { "spread": null, "expression": { "type": "StringLiteral", "span": { "start": 908, "end": 913, "ctxt": 0 }, "value": "foo", "raw": "\"foo\"" } } ] }, "definite": false } ] }, { "type": "ExpressionStatement", "span": { "start": 916, "end": 936, "ctxt": 0 }, "expression": { "type": "CallExpression", "span": { "start": 916, "end": 935, "ctxt": 0 }, "callee": { "type": "MemberExpression", "span": { "start": 916, "end": 933, "ctxt": 0 }, "object": { "type": "Identifier", "span": { "start": 916, "end": 921, "ctxt": 0 }, "value": "value", "optional": false }, "property": { "type": "Identifier", "span": { "start": 922, "end": 933, "ctxt": 0 }, "value": "toUpperCase", "optional": false } }, "arguments": [], "typeArguments": null } } ], "interpreter": null }