Fix destructuring evaluation order for initializers

This commit is contained in:
Ron Buckton
2020-10-13 17:14:35 -07:00
parent 83d02a5f05
commit 7393dba6bd
40 changed files with 599 additions and 376 deletions
+25 -3
View File
@@ -5,6 +5,7 @@ namespace ts {
level: FlattenLevel;
downlevelIteration: boolean;
hoistTempVariables: boolean;
hasTransformedPriorElement?: boolean; // indicates whether we've transformed a prior declaration
emitExpression: (value: Expression) => void;
emitBindingOrAssignment: (target: BindingOrAssignmentElementTarget, value: Expression, location: TextRange, original: Node | undefined) => void;
createArrayBindingOrAssignmentPattern: (elements: BindingOrAssignmentElement[]) => ArrayBindingOrAssignmentPattern;
@@ -265,18 +266,27 @@ namespace ts {
value: Expression | undefined,
location: TextRange,
skipInitializer?: boolean) {
const bindingTarget = getTargetOfBindingOrAssignmentElement(element)!; // TODO: GH#18217
if (!skipInitializer) {
const initializer = visitNode(getInitializerOfBindingOrAssignmentElement(element), flattenContext.visitor, isExpression);
if (initializer) {
// Combine value and initializer
value = value ? createDefaultValueCheck(flattenContext, value, initializer, location) : initializer;
if (value) {
value = createDefaultValueCheck(flattenContext, value, initializer, location);
// If 'value' is not a simple expression, it could contain side-effecting code that should evaluate before an object or array binding pattern.
if (!isSimpleInlineableExpression(initializer) && isBindingOrAssignmentPattern(bindingTarget)) {
value = ensureIdentifier(flattenContext, value, /*reuseIdentifierExpressions*/ true, location);
}
}
else {
value = initializer;
}
}
else if (!value) {
// Use 'void 0' in absence of value and initializer
value = flattenContext.context.factory.createVoidZero();
}
}
const bindingTarget = getTargetOfBindingOrAssignmentElement(element)!; // TODO: GH#18217
if (isObjectBindingOrAssignmentPattern(bindingTarget)) {
flattenObjectBindingOrAssignmentPattern(flattenContext, element, bindingTarget, value!, location);
}
@@ -393,7 +403,8 @@ namespace ts {
if (flattenContext.level >= FlattenLevel.ObjectRest) {
// If an array pattern contains an ObjectRest, we must cache the result so that we
// can perform the ObjectRest destructuring in a different declaration
if (element.transformFlags & TransformFlags.ContainsObjectRestOrSpread) {
if (element.transformFlags & TransformFlags.ContainsObjectRestOrSpread || flattenContext.hasTransformedPriorElement && !isSimpleBindingOrAssignmentElement(element)) {
flattenContext.hasTransformedPriorElement = true;
const temp = flattenContext.context.factory.createTempVariable(/*recordTempVariable*/ undefined);
if (flattenContext.hoistTempVariables) {
flattenContext.context.hoistVariableDeclaration(temp);
@@ -428,6 +439,17 @@ namespace ts {
}
}
function isSimpleBindingOrAssignmentElement(element: BindingOrAssignmentElement): boolean {
const target = getTargetOfBindingOrAssignmentElement(element);
if (!target || isOmittedExpression(target)) return true;
const propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(element);
if (propertyName && !isPropertyNameLiteral(propertyName)) return false;
const initializer = getInitializerOfBindingOrAssignmentElement(element);
if (initializer && !isSimpleInlineableExpression(initializer)) return false;
if (isBindingOrAssignmentPattern(target)) return every(getElementsOfBindingOrAssignmentPattern(target), isSimpleBindingOrAssignmentElement);
return isIdentifier(target);
}
/**
* Creates an expression used to provide a default value if a value is `undefined` at runtime.
*
+1
View File
@@ -89,6 +89,7 @@
"unittests/evaluation/asyncArrow.ts",
"unittests/evaluation/asyncGenerator.ts",
"unittests/evaluation/awaiter.ts",
"unittests/evaluation/destructuring.ts",
"unittests/evaluation/forAwaitOf.ts",
"unittests/evaluation/forOf.ts",
"unittests/evaluation/optionalCall.ts",
@@ -0,0 +1,39 @@
describe("unittests:: evaluation:: destructuring", () => {
// https://github.com/microsoft/TypeScript/issues/39205
describe("correct order for array destructuring evaluation and initializers", () => {
it("when element is undefined", () => {
const result = evaluator.evaluateTypeScript(`
export const output: any[] = [];
const order = (n: any): any => output.push(n);
let [{ [order(1)]: x } = order(0)] = [];
`, { target: ts.ScriptTarget.ES5 });
assert.deepEqual(result.output, [0, 1]);
});
it("when element is defined", async () => {
const result = evaluator.evaluateTypeScript(`
export const output: any[] = [];
const order = (n: any): any => output.push(n);
let [{ [order(1)]: x } = order(0)] = [{}];
`, { target: ts.ScriptTarget.ES5 });
assert.deepEqual(result.output, [1]);
});
});
describe("correct order for array destructuring evaluation and initializers with spread", () => {
it("ES5", () => {
const result = evaluator.evaluateTypeScript(`
export const output: any[] = [];
const order = (n: any): any => output.push(n);
let { [order(0)]: { [order(2)]: z } = order(1), ...w } = {} as any;
`, { target: ts.ScriptTarget.ES5 });
assert.deepEqual(result.output, [0, 1, 2]);
});
it("ES2015", () => {
const result = evaluator.evaluateTypeScript(`
export const output: any[] = [];
const order = (n: any): any => output.push(n);
let { [order(0)]: { [order(2)]: z } = order(1), ...w } = {} as any;
`, { target: ts.ScriptTarget.ES2015 });
assert.deepEqual(result.output, [0, 1, 2]);
});
});
});
@@ -137,7 +137,7 @@ var p8 = function (_a) {
var _b = _a.a, a = _b === void 0 ? 1 : _b;
};
var p9 = function (_a) {
var _b = _a.a, _c = (_b === void 0 ? { b: 1 } : _b).b, b = _c === void 0 ? 1 : _c;
var _b = _a.a, _c = _b === void 0 ? { b: 1 } : _b, _d = _c.b, b = _d === void 0 ? 1 : _d;
};
var p10 = function (_a) {
var _b = _a[0], value = _b.value, done = _b.done;
@@ -12,15 +12,15 @@ function fst({ s } = t) { }
//// [contextualTypeForInitalizedVariablesFiltersUndefined.js]
"use strict";
var fInferred = function (_a) {
var _b = (_a === void 0 ? {} : _a).a, a = _b === void 0 ? 0 : _b;
var _b = _a === void 0 ? {} : _a, _c = _b.a, a = _c === void 0 ? 0 : _c;
return a;
};
// const fInferred: ({ a }?: { a?: number; }) => number
var fAnnotated = function (_a) {
var _b = (_a === void 0 ? {} : _a).a, a = _b === void 0 ? 0 : _b;
var _b = _a === void 0 ? {} : _a, _c = _b.a, a = _c === void 0 ? 0 : _c;
return a;
};
var s = t.s;
function fst(_a) {
var s = (_a === void 0 ? t : _a).s;
var _b = _a === void 0 ? t : _a, s = _b.s;
}
@@ -95,11 +95,11 @@ let eleven = (o => o.a(11))({ a: function(n) { return n; } });
return p;
})({ p: 15 });
(function (_a) {
var _b = (_a === void 0 ? { r: 18 } : _a).r, r = _b === void 0 ? 17 : _b;
var _b = _a === void 0 ? { r: 18 } : _a, _c = _b.r, r = _c === void 0 ? 17 : _c;
return r;
})({ r: 19 });
(function (_a) {
var _b = (_a === void 0 ? { u: 23 } : _a).u, u = _b === void 0 ? 22 : _b;
var _b = _a === void 0 ? { u: 23 } : _a, _c = _b.u, u = _c === void 0 ? 22 : _c;
return u;
})();
// contextually typed parameters.
@@ -95,11 +95,11 @@ let eleven = (o => o.a(11))({ a: function(n) { return n; } });
return p;
})({ p: 15 });
(function (_a) {
var _b = (_a === void 0 ? { r: 18 } : _a).r, r = _b === void 0 ? 17 : _b;
var _b = _a === void 0 ? { r: 18 } : _a, _c = _b.r, r = _c === void 0 ? 17 : _c;
return r;
})({ r: 19 });
(function (_a) {
var _b = (_a === void 0 ? { u: 23 } : _a).u, u = _b === void 0 ? 22 : _b;
var _b = _a === void 0 ? { u: 23 } : _a, _c = _b.u, u = _c === void 0 ? 22 : _c;
return u;
})();
// contextually typed parameters.
@@ -41,7 +41,7 @@ typeof itemOk1; // pass
var objWithItems = { items: {} };
var itemOk2 = objWithItems.items[itemId];
typeof itemOk2; // pass
var _c = objWithItems, _d = _c.items /*happens when default value is provided*/, _e = itemId, itemWithTSError = (_d === void 0 ? {} /*happens when default value is provided*/ : _d)[_e];
var _c = objWithItems, _d = _c.items /*happens when default value is provided*/, _e = _d === void 0 ? {} : _d /*happens when default value is provided*/, _f = itemId, itemWithTSError = _e[_f];
// in order to re-produce the error, uncomment next line:
typeof itemWithTSError; // :(
// will result in:
@@ -13,7 +13,7 @@ var a;
function f(_a, _b, _c) {
_a = a;
_b = a;
var _d = (_c === void 0 ? a : _c).p, _e = _d === void 0 ? a : _d;
var _d = _c === void 0 ? a : _c, _e = _d.p, _f = _e === void 0 ? a : _e, _g = _f;
}
@@ -20,7 +20,7 @@ function baz1(_a) {
_a = [1, 2, 3];
}
function baz2(_a) {
var _b = (_a === void 0 ? [[1, 2, 3]] : _a)[0];
var _b = _a === void 0 ? [[1, 2, 3]] : _a, _c = _b[0];
}
function baz3(_a) { }
function baz4(_a) {
@@ -0,0 +1,49 @@
//// [destructuringEvaluationOrder.ts]
// https://github.com/microsoft/TypeScript/issues/39205
let trace: any[] = [];
let order = (n: any): any => trace.push(n);
// order(0) should evaluate before order(1) because the first element is undefined
let [{ [order(1)]: x } = order(0)] = [];
// order(0) should not evaluate because the first element is defined
let [{ [order(1)]: y } = order(0)] = [{}];
// order(0) should evaluate first (destructuring of object literal {})
// order(1) should evaluate next (initializer because property is undefined)
// order(2) should evaluate last (evaluate object binding pattern from initializer)
let { [order(0)]: { [order(2)]: z } = order(1), ...w } = {} as any;
// https://github.com/microsoft/TypeScript/issues/39181
// b = a must occur *after* 'a' has been assigned
let [{ ...a }, b = a]: any[] = [{ x: 1 }]
//// [destructuringEvaluationOrder.js]
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
// https://github.com/microsoft/TypeScript/issues/39205
let trace = [];
let order = (n) => trace.push(n);
// order(0) should evaluate before order(1) because the first element is undefined
let [{ [order(1)]: x } = order(0)] = [];
// order(0) should not evaluate because the first element is defined
let [{ [order(1)]: y } = order(0)] = [{}];
// order(0) should evaluate first (destructuring of object literal {})
// order(1) should evaluate next (initializer because property is undefined)
// order(2) should evaluate last (evaluate object binding pattern from initializer)
let _a = {}, _b = order(0), _c = _a[_b], _d = _c === void 0 ? order(1) : _c, _e = order(2), z = _d[_e], w = __rest(_a, [typeof _b === "symbol" ? _b : _b + ""]);
// https://github.com/microsoft/TypeScript/issues/39181
// b = a must occur *after* 'a' has been assigned
let [_f, _g] = [{ x: 1 }], a = __rest(_f, []), b = _g === void 0 ? a : _g;
@@ -0,0 +1,49 @@
//// [destructuringEvaluationOrder.ts]
// https://github.com/microsoft/TypeScript/issues/39205
let trace: any[] = [];
let order = (n: any): any => trace.push(n);
// order(0) should evaluate before order(1) because the first element is undefined
let [{ [order(1)]: x } = order(0)] = [];
// order(0) should not evaluate because the first element is defined
let [{ [order(1)]: y } = order(0)] = [{}];
// order(0) should evaluate first (destructuring of object literal {})
// order(1) should evaluate next (initializer because property is undefined)
// order(2) should evaluate last (evaluate object binding pattern from initializer)
let { [order(0)]: { [order(2)]: z } = order(1), ...w } = {} as any;
// https://github.com/microsoft/TypeScript/issues/39181
// b = a must occur *after* 'a' has been assigned
let [{ ...a }, b = a]: any[] = [{ x: 1 }]
//// [destructuringEvaluationOrder.js]
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
// https://github.com/microsoft/TypeScript/issues/39205
var trace = [];
var order = function (n) { return trace.push(n); };
// order(0) should evaluate before order(1) because the first element is undefined
var _a = [], _b = _a[0], _c = _b === void 0 ? order(0) : _b, _d = order(1), x = _c[_d];
// order(0) should not evaluate because the first element is defined
var _e = [{}], _f = _e[0], _g = _f === void 0 ? order(0) : _f, _h = order(1), y = _g[_h];
// order(0) should evaluate first (destructuring of object literal {})
// order(1) should evaluate next (initializer because property is undefined)
// order(2) should evaluate last (evaluate object binding pattern from initializer)
var _j = {}, _k = order(0), _l = _j[_k], _m = _l === void 0 ? order(1) : _l, _o = order(2), z = _m[_o], w = __rest(_j, [typeof _k === "symbol" ? _k : _k + ""]);
// https://github.com/microsoft/TypeScript/issues/39181
// b = a must occur *after* 'a' has been assigned
var _p = [{ x: 1 }], _q = _p[0], _r = _p[1], a = __rest(_q, []), b = _r === void 0 ? a : _r;
@@ -65,9 +65,9 @@ var a2 = {}.a2;
// S has an apparent property with the property name specified in
// P of a type that is assignable to the target given in P, or
var b1 = { b1: 1 }.b1;
var _a = { b2: { b21: "world" } }.b2, b21 = (_a === void 0 ? { b21: "string" } : _a).b21;
var _a = { b2: { b21: "world" } }.b2, _b = _a === void 0 ? { b21: "string" } : _a, b21 = _b.b21;
var b3 = { 1: "string" }[1];
var _b = { b4: 100000 }.b4, b4 = _b === void 0 ? 1 : _b;
var _c = { b4: 100000 }.b4, b4 = _c === void 0 ? 1 : _c;
var b52 = { b5: { b52: b52 } }.b5.b52;
function foo() {
return {
@@ -13,6 +13,6 @@ var {"prop"} = { "prop": 1 };
var h = { h: 1 }.h;
var i = { i: 2 }.i;
var i1 = { i1: 2 }.i1;
var _a = undefined.f2, f21 = (_a === void 0 ? { f212: "string" } : _a).f21;
var _a = undefined.f2, _b = _a === void 0 ? { f212: "string" } : _a, f21 = _b.f21;
var = { 1: }[1];
var = { "prop": 1 }["prop"];
@@ -127,7 +127,7 @@ function b2(z, o) {
if (o === void 0) { o = { x: 0, y: undefined }; }
}
function b3(_a) {
var _b = (_a === void 0 ? { z: { x: "hi", y: { j: 1 } } } : _a).z, x = _b.x, j = _b.y.j;
var _b = _a === void 0 ? { z: { x: "hi", y: { j: 1 } } } : _a, _c = _b.z, x = _c.x, j = _c.y.j;
}
function b6(_a) {
var _b = _a === void 0 ? [undefined, null, undefined] : _a, a = _b[0], z = _b[1], y = _b[2];
@@ -149,13 +149,13 @@ function c0(_a) {
var _b = _a.z, x = _b.x, j = _b.y.j;
}
function c1(_a) {
var z = (_a === void 0 ? { z: 10 } : _a).z;
var _b = _a === void 0 ? { z: 10 } : _a, z = _b.z;
}
function c2(_a) {
var _b = _a.z, z = _b === void 0 ? 10 : _b;
}
function c3(_a) {
var b = (_a === void 0 ? { b: "hello" } : _a).b;
var _b = _a === void 0 ? { b: "hello" } : _a, b = _b.b;
}
function c5(_a) {
var a = _a[0], b = _a[1], c = _a[2][0][0];
@@ -143,13 +143,13 @@ function b2(z, o) {
if (o === void 0) { o = { x: 0, y: undefined }; }
}
function b3(_a) {
var _b = (_a === void 0 ? { z: { x: "hi", y: { j: 1 } } } : _a).z, x = _b.x, j = _b.y.j;
var _b = _a === void 0 ? { z: { x: "hi", y: { j: 1 } } } : _a, _c = _b.z, x = _c.x, j = _c.y.j;
}
function b6(_a) {
var _b = __read(_a === void 0 ? [undefined, null, undefined] : _a, 3), a = _b[0], z = _b[1], y = _b[2];
var _b = _a === void 0 ? [undefined, null, undefined] : _a, _c = __read(_b, 3), a = _c[0], z = _c[1], y = _c[2];
}
function b7(_a) {
var _b = __read(_a === void 0 ? [[undefined], undefined, [[undefined, undefined]]] : _a, 3), _c = __read(_b[0], 1), a = _c[0], b = _b[1], _d = __read(_b[2], 1), _e = __read(_d[0], 2), c = _e[0], d = _e[1];
var _b = _a === void 0 ? [[undefined], undefined, [[undefined, undefined]]] : _a, _c = __read(_b, 3), _d = __read(_c[0], 1), a = _d[0], b = _c[1], _e = __read(_c[2], 1), _f = __read(_e[0], 2), c = _f[0], d = _f[1];
}
b1([1, 2, 3]); // z is widen to the type any[]
b2("string", { x: 200, y: "string" });
@@ -165,13 +165,13 @@ function c0(_a) {
var _b = _a.z, x = _b.x, j = _b.y.j;
}
function c1(_a) {
var z = (_a === void 0 ? { z: 10 } : _a).z;
var _b = _a === void 0 ? { z: 10 } : _a, z = _b.z;
}
function c2(_a) {
var _b = _a.z, z = _b === void 0 ? 10 : _b;
}
function c3(_a) {
var b = (_a === void 0 ? { b: "hello" } : _a).b;
var _b = _a === void 0 ? { b: "hello" } : _a, b = _b.b;
}
function c5(_a) {
var _b = __read(_a, 3), a = _b[0], b = _b[1], _c = __read(_b[2], 1), _d = __read(_c[0], 1), c = _d[0];
@@ -94,13 +94,13 @@ function c0(_a) {
var _b = _a.z, x = _b.x, j = _b.y.j;
}
function c1(_a) {
var z = (_a === void 0 ? { z: 10 } : _a).z;
var _b = _a === void 0 ? { z: 10 } : _a, z = _b.z;
}
function c2(_a) {
var _b = _a.z, z = _b === void 0 ? 10 : _b;
}
function c3(_a) {
var b = (_a === void 0 ? { b: "hello" } : _a).b;
var _b = _a === void 0 ? { b: "hello" } : _a, b = _b.b;
}
function c4(_a, z) {
var z = _a[0];
@@ -90,7 +90,7 @@ var SubD = /** @class */ (function (_super) {
return SubD;
}(D));
function d0(_a) {
var x = (_a === void 0 ? { x: new Class() } : _a).x;
var _b = _a === void 0 ? { x: new Class() } : _a, x = _b.x;
}
function d1(_a) {
var x = _a.x;
@@ -102,7 +102,7 @@ function d3(_a) {
var y = _a.y;
}
function d4(_a) {
var y = (_a === void 0 ? { y: new D() } : _a).y;
var _b = _a === void 0 ? { y: new D() } : _a, y = _b.y;
}
var obj = new Class();
d0({ x: 1 });
@@ -55,10 +55,10 @@ var _a = { a1: 10, a2: "world" }, a1 = _a.a1, a2 = _a.a2;
var _b = [1, [["hello"]], true], a3 = _b[0], a4 = _b[1][0][0], a5 = _b[2];
// The type T associated with a destructuring variable declaration is determined as follows:
// Otherwise, if the declaration includes an initializer expression, T is the type of that initializer expression.
var _c = { b1: { b11: "world" } }.b1, b11 = (_c === void 0 ? { b11: "string" } : _c).b11;
var _c = { b1: { b11: "world" } }.b1, _d = _c === void 0 ? { b11: "string" } : _c, b11 = _d.b11;
var temp = { t1: true, t2: "false" };
var _d = [3, false, { t1: false, t2: "hello" }], _e = _d[0], b2 = _e === void 0 ? 3 : _e, _f = _d[1], b3 = _f === void 0 ? true : _f, _g = _d[2], b4 = _g === void 0 ? temp : _g;
var _h = [undefined, undefined, undefined], _j = _h[0], b5 = _j === void 0 ? 3 : _j, _k = _h[1], b6 = _k === void 0 ? true : _k, _l = _h[2], b7 = _l === void 0 ? temp : _l;
var _e = [3, false, { t1: false, t2: "hello" }], _f = _e[0], b2 = _f === void 0 ? 3 : _f, _g = _e[1], b3 = _g === void 0 ? true : _g, _h = _e[2], b4 = _h === void 0 ? temp : _h;
var _j = [undefined, undefined, undefined], _k = _j[0], b5 = _k === void 0 ? 3 : _k, _l = _j[1], b6 = _l === void 0 ? true : _l, _m = _j[2], b7 = _m === void 0 ? temp : _m;
// The type T associated with a binding element is determined as follows:
// If the binding element is a rest element, T is an array type with
// an element type E, where E is the type of the numeric index signature of S.
@@ -68,17 +68,17 @@ var c2 = [1, 2, 3, "string"].slice(0);
// Otherwise, if S is a tuple- like type (section 3.3.3):
// Let N be the zero-based index of the binding element in the array binding pattern.
// If S has a property with the numerical name N, T is the type of that property.
var _m = [1, "string"], d1 = _m[0], d2 = _m[1];
var _o = [1, "string"], d1 = _o[0], d2 = _o[1];
// The type T associated with a binding element is determined as follows:
// Otherwise, if S is a tuple- like type (section 3.3.3):
// Otherwise, if S has a numeric index signature, T is the type of the numeric index signature.
var temp1 = [true, false, true];
var _o = __spreadArrays([1, "string"], temp1), d3 = _o[0], d4 = _o[1];
var _p = __spreadArrays([1, "string"], temp1), d3 = _p[0], d4 = _p[1];
// Combining both forms of destructuring,
var _p = { e: [1, 2, { b1: 4, b4: 0 }] }.e, e1 = _p[0], e2 = _p[1], _q = _p[2], e3 = _q === void 0 ? { b1: 1000, b4: 200 } : _q;
var _r = { f: [1, 2, { f3: 4, f5: 0 }] }.f, f1 = _r[0], f2 = _r[1], _s = _r[2], f4 = _s.f3, f5 = _s.f5;
var _q = { e: [1, 2, { b1: 4, b4: 0 }] }.e, e1 = _q[0], e2 = _q[1], _r = _q[2], e3 = _r === void 0 ? { b1: 1000, b4: 200 } : _r;
var _s = { f: [1, 2, { f3: 4, f5: 0 }] }.f, f1 = _s[0], f2 = _s[1], _t = _s[2], f4 = _t.f3, f5 = _t.f5;
// When a destructuring variable declaration, binding property, or binding element specifies
// an initializer expression, the type of the initializer expression is required to be assignable
// to the widened form of the type associated with the destructuring variable declaration, binding property, or binding element.
var _t = { g: { g1: [1, 2] } }.g.g1, g1 = _t === void 0 ? [undefined, null] : _t;
var _u = { h: { h1: [1, 2] } }.h.h1, h1 = _u === void 0 ? [undefined, null] : _u;
var _u = { g: { g1: [1, 2] } }.g.g1, g1 = _u === void 0 ? [undefined, null] : _u;
var _v = { h: { h1: [1, 2] } }.h.h1, h1 = _v === void 0 ? [undefined, null] : _v;
@@ -68,30 +68,30 @@ var _a = { a1: 10, a2: "world" }, a1 = _a.a1, a2 = _a.a2;
var _b = __read([1, [["hello"]], true], 3), a3 = _b[0], _c = __read(_b[1], 1), _d = __read(_c[0], 1), a4 = _d[0], a5 = _b[2];
// The type T associated with a destructuring variable declaration is determined as follows:
// Otherwise, if the declaration includes an initializer expression, T is the type of that initializer expression.
var _e = { b1: { b11: "world" } }.b1, b11 = (_e === void 0 ? { b11: "string" } : _e).b11;
var _e = { b1: { b11: "world" } }.b1, _f = _e === void 0 ? { b11: "string" } : _e, b11 = _f.b11;
var temp = { t1: true, t2: "false" };
var _f = __read([3, false, { t1: false, t2: "hello" }], 3), _g = _f[0], b2 = _g === void 0 ? 3 : _g, _h = _f[1], b3 = _h === void 0 ? true : _h, _j = _f[2], b4 = _j === void 0 ? temp : _j;
var _k = __read([undefined, undefined, undefined], 3), _l = _k[0], b5 = _l === void 0 ? 3 : _l, _m = _k[1], b6 = _m === void 0 ? true : _m, _o = _k[2], b7 = _o === void 0 ? temp : _o;
var _g = __read([3, false, { t1: false, t2: "hello" }], 3), _h = _g[0], b2 = _h === void 0 ? 3 : _h, _j = _g[1], b3 = _j === void 0 ? true : _j, _k = _g[2], b4 = _k === void 0 ? temp : _k;
var _l = __read([undefined, undefined, undefined], 3), _m = _l[0], b5 = _m === void 0 ? 3 : _m, _o = _l[1], b6 = _o === void 0 ? true : _o, _p = _l[2], b7 = _p === void 0 ? temp : _p;
// The type T associated with a binding element is determined as follows:
// If the binding element is a rest element, T is an array type with
// an element type E, where E is the type of the numeric index signature of S.
var _p = __read([1, 2, 3]), c1 = _p.slice(0);
var _q = __read([1, 2, 3, "string"]), c2 = _q.slice(0);
var _q = __read([1, 2, 3]), c1 = _q.slice(0);
var _r = __read([1, 2, 3, "string"]), c2 = _r.slice(0);
// The type T associated with a binding element is determined as follows:
// Otherwise, if S is a tuple- like type (section 3.3.3):
// Let N be the zero-based index of the binding element in the array binding pattern.
// If S has a property with the numerical name N, T is the type of that property.
var _r = __read([1, "string"], 2), d1 = _r[0], d2 = _r[1];
var _s = __read([1, "string"], 2), d1 = _s[0], d2 = _s[1];
// The type T associated with a binding element is determined as follows:
// Otherwise, if S is a tuple- like type (section 3.3.3):
// Otherwise, if S has a numeric index signature, T is the type of the numeric index signature.
var temp1 = [true, false, true];
var _s = __read(__spread([1, "string"], temp1), 2), d3 = _s[0], d4 = _s[1];
var _t = __read(__spread([1, "string"], temp1), 2), d3 = _t[0], d4 = _t[1];
// Combining both forms of destructuring,
var _t = __read({ e: [1, 2, { b1: 4, b4: 0 }] }.e, 3), e1 = _t[0], e2 = _t[1], _u = _t[2], e3 = _u === void 0 ? { b1: 1000, b4: 200 } : _u;
var _v = __read({ f: [1, 2, { f3: 4, f5: 0 }] }.f, 4), f1 = _v[0], f2 = _v[1], _w = _v[2], f4 = _w.f3, f5 = _w.f5;
var _u = __read({ e: [1, 2, { b1: 4, b4: 0 }] }.e, 3), e1 = _u[0], e2 = _u[1], _v = _u[2], e3 = _v === void 0 ? { b1: 1000, b4: 200 } : _v;
var _w = __read({ f: [1, 2, { f3: 4, f5: 0 }] }.f, 4), f1 = _w[0], f2 = _w[1], _x = _w[2], f4 = _x.f3, f5 = _x.f5;
// When a destructuring variable declaration, binding property, or binding element specifies
// an initializer expression, the type of the initializer expression is required to be assignable
// to the widened form of the type associated with the destructuring variable declaration, binding property, or binding element.
var _x = { g: { g1: [1, 2] } }.g.g1, g1 = _x === void 0 ? [undefined, null] : _x;
var _y = { h: { h1: [1, 2] } }.h.h1, h1 = _y === void 0 ? [undefined, null] : _y;
var _y = { g: { g1: [1, 2] } }.g.g1, g1 = _y === void 0 ? [undefined, null] : _y;
var _z = { h: { h1: [1, 2] } }.h.h1, h1 = _z === void 0 ? [undefined, null] : _z;
@@ -110,7 +110,7 @@ f6({ y: 1 });
f6({ x: 1, y: 1 });
// (arg?: { a: { x?: number, y?: number } }) => void
function f7(_a) {
var _b = (_a === void 0 ? { a: {} } : _a).a, _c = _b.x, x = _c === void 0 ? 0 : _c, _d = _b.y, y = _d === void 0 ? 0 : _d;
var _b = _a === void 0 ? { a: {} } : _a, _c = _b.a, _d = _c.x, x = _d === void 0 ? 0 : _d, _e = _c.y, y = _e === void 0 ? 0 : _e;
}
f7();
f7({ a: {} });
@@ -68,11 +68,11 @@
function f(_a, _b, _c) {
_a = a;
_b = a;
var _d = (_c === void 0 ? a : _c).p, _e = _d === void 0 ? a : _d;
var _d = _c === void 0 ? a : _c, _e = _d.p, _f = _e === void 0 ? a : _e, _g = _f;
return function (_a, _b, _c) {
_a = a;
_b = a;
var _d = (_c === void 0 ? a : _c).p, _e = _d === void 0 ? a : _d;
var _d = _c === void 0 ? a : _c, _e = _d.p, _f = _e === void 0 ? a : _e, _g = _f;
return a;
};
}
@@ -95,11 +95,11 @@ var __values = (this && this.__values) || function(o) {
function f(_a, _b, _c) {
_a = a;
_b = a;
var _d = (_c === void 0 ? a : _c).p, _e = _d === void 0 ? a : _d;
var _d = _c === void 0 ? a : _c, _e = _d.p, _f = _e === void 0 ? a : _e, _g = _f;
return function (_a, _b, _c) {
_a = a;
_b = a;
var _d = (_c === void 0 ? a : _c).p, _e = _d === void 0 ? a : _d;
var _d = _c === void 0 ? a : _c, _e = _d.p, _f = _e === void 0 ? a : _e, _g = _f;
return a;
};
}
@@ -29,8 +29,8 @@ function f4(_a, x) {
var b = _a.b;
}
function f5(_a, _b, c1, d1) {
var a1 = (_a === void 0 ? [undefined] : _a)[0];
var b1 = (_b === void 0 ? { b1: null } : _b).b1;
var _c = _a === void 0 ? [undefined] : _a, a1 = _c[0];
var _d = _b === void 0 ? { b1: null } : _b, b1 = _d.b1;
if (c1 === void 0) { c1 = undefined; }
if (d1 === void 0) { d1 = null; }
}
@@ -49,6 +49,6 @@ var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _ar
var _a, _b, _c, _d;
let obj = {};
(Object.assign({}, obj));
let _e = {}, { prop = Object.assign({}, obj), more = _a = Object.assign({}, obj), obj = __rest(_a, []), _a } = _e, _f = '' + 'other', _g = _e[_f], other = _g === void 0 ? Object.assign({}, obj) : _g, _h = _e.yetAnother, _j = (_h === void 0 ? Object.assign({}, obj) : _h).nested, _k = _j === void 0 ? Object.assign({}, obj) : _j, _l = 'nested' + 'prop', _m = _k[_l], nestedProp = _m === void 0 ? Object.assign({}, obj) : _m, nestedRest = __rest(_k, [typeof _l === "symbol" ? _l : _l + ""]), { fn = function () { return __asyncGenerator(this, arguments, function* () { }); } } = _e, props = __rest(_e, ["prop", "more", typeof _f === "symbol" ? _f : _f + "", "yetAnother", "fn"]);
let _e = {}, { prop = Object.assign({}, obj), more = _a = Object.assign({}, obj), obj = __rest(_a, []), _a } = _e, _f = '' + 'other', _g = _e[_f], other = _g === void 0 ? Object.assign({}, obj) : _g, _h = _e.yetAnother, _j = _h === void 0 ? Object.assign({}, obj) : _h, _k = _j.nested, _l = _k === void 0 ? Object.assign({}, obj) : _k, _m = 'nested' + 'prop', _o = _l[_m], nestedProp = _o === void 0 ? Object.assign({}, obj) : _o, nestedRest = __rest(_l, [typeof _m === "symbol" ? _m : _m + ""]), { fn = function () { return __asyncGenerator(this, arguments, function* () { }); } } = _e, props = __rest(_e, ["prop", "more", typeof _f === "symbol" ? _f : _f + "", "yetAnother", "fn"]);
(_b = {}, { prop = Object.assign({}, obj) } = _b, _c = '' + 'other', _d = _b[_c], other = _d === void 0 ? Object.assign({}, obj) : _d, props = __rest(_b, ["prop", typeof _c === "symbol" ? _c : _c + ""]));
function test(_a) { var { prop = Object.assign({}, obj) } = _a, props = __rest(_a, ["prop"]); }
@@ -97,12 +97,12 @@ function func7(_a) {
// no error
}
function performFoo(_a) {
var bar = (_a === void 0 ? {} : _a).bar;
var _b = _a === void 0 ? {} : _a, bar = _b.bar;
useBar(bar);
}
performFoo();
function performFoo2(_a) {
var _b = (_a === void 0 ? {} : _a).bar, bar = _b === void 0 ? null : _b;
var _b = _a === void 0 ? {} : _a, _c = _b.bar, bar = _c === void 0 ? null : _c;
useBar2(bar);
}
performFoo2();
@@ -17,11 +17,11 @@ function foo1(_a) {
var r = (_a === void 0 ? null : _a).slice(0);
}
function foo2(_a) {
var r = (_a === void 0 ? undefined : _a).slice(0);
var _b = _a === void 0 ? undefined : _a, r = _b.slice(0);
}
function foo3(_a) {
var r = (_a === void 0 ? {} : _a).slice(0);
var _b = _a === void 0 ? {} : _a, r = _b.slice(0);
}
function foo4(_a) {
var r = (_a === void 0 ? [] : _a).slice(0);
var _b = _a === void 0 ? [] : _a, r = _b.slice(0);
}
@@ -47,7 +47,7 @@ foo3({ name: "Edger", skills: { primary: "edging", secondary: "branch trimming"
//// [sourceMapValidationDestructuringParameterNestedObjectBindingPatternDefaultValues.js]
var robotA = { name: "mower", skills: { primary: "mowing", secondary: "none" } };
function foo1(_a) {
var _b = (_a === void 0 ? robotA : _a).skills, _c = _b === void 0 ? { primary: "SomeSkill", secondary: "someSkill" } : _b, _d = _c.primary, primaryA = _d === void 0 ? "primary" : _d, _e = _c.secondary, secondaryA = _e === void 0 ? "secondary" : _e;
var _b = _a === void 0 ? robotA : _a, _c = _b.skills, _d = _c === void 0 ? { primary: "SomeSkill", secondary: "someSkill" } : _c, _e = _d.primary, primaryA = _e === void 0 ? "primary" : _e, _f = _d.secondary, secondaryA = _f === void 0 ? "secondary" : _f;
console.log(primaryA);
}
function foo2(_a) {
@@ -55,7 +55,7 @@ function foo2(_a) {
console.log(secondaryB);
}
function foo3(_a) {
var _b = (_a === void 0 ? robotA : _a).skills, skills = _b === void 0 ? { primary: "SomeSkill", secondary: "someSkill" } : _b;
var _b = _a === void 0 ? robotA : _a, _c = _b.skills, skills = _c === void 0 ? { primary: "SomeSkill", secondary: "someSkill" } : _c;
console.log(skills.primary);
}
foo1(robotA);
@@ -92,7 +92,7 @@ sourceFile:sourceMapValidationDestructuringParameterNestedObjectBindingPatternDe
3 > ^^^^
4 > ^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
>
@@ -112,105 +112,115 @@ sourceFile:sourceMapValidationDestructuringParameterNestedObjectBindingPatternDe
4 >Emitted(2, 15) Source(14, 5) + SourceIndex(0)
5 >Emitted(2, 17) Source(19, 22) + SourceIndex(0)
---
>>> var _b = (_a === void 0 ? robotA : _a).skills, _c = _b === void 0 ? { primary: "SomeSkill", secondary: "someSkill" } : _b, _d = _c.primary, primaryA = _d === void 0 ? "primary" : _d, _e = _c.secondary, secondaryA = _e === void 0 ? "secondary" : _e;
>>> var _b = _a === void 0 ? robotA : _a, _c = _b.skills, _d = _c === void 0 ? { primary: "SomeSkill", secondary: "someSkill" } : _c, _e = _d.primary, primaryA = _e === void 0 ? "primary" : _e, _f = _d.secondary, secondaryA = _f === void 0 ? "secondary" : _f;
1->^^^^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^
4 > ^^^^^^^^^^^^^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^^^^^
7 > ^^
8 > ^^^^^^^
9 > ^^
10> ^^^^^^^^^^^
11> ^^
12> ^^^^^^^^^
13> ^^
14> ^^^^^^^^^^^
15> ^^
16> ^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^
4 > ^^^^^
5 > ^^
6 > ^^^^^^^^^^^^^^
7 > ^^
8 > ^^^^^^^^^^^^^^^^^^^^^
9 > ^^
10> ^^^^^^^
11> ^^
12> ^^^^^^^^^^^
13> ^^
14> ^^^^^^^^^
15> ^^
16> ^^^^^^^^^^^
17> ^^
18> ^^^^^^^^^^^^^^^
19> ^^
20> ^^^^^^^^
21> ^^^^^^^^^^^^^^^^^^^
22> ^^^^^^^^^
23> ^^^^^
24> ^^
25> ^^^^^^^^^^^^^^^^^
26> ^^
27> ^^^^^^^^^^
28> ^^^^^^^^^^^^^^^^^^^
29> ^^^^^^^^^^^
30> ^^^^^
18> ^^^^^
19> ^^
20> ^^^^^^^^^^^^^^^
21> ^^
22> ^^^^^^^^
23> ^^^^^^^^^^^^^^^^^^^
24> ^^^^^^^^^
25> ^^^^^
26> ^^
27> ^^^^^^^^^^^^^^^^^
28> ^^
29> ^^^^^^^^^^
30> ^^^^^^^^^^^^^^^^^^^
31> ^^^^^^^^^^^
32> ^^^^^
1->
2 > skills: {
2 > {
> skills: {
> primary: primaryA = "primary",
> secondary: secondaryA = "secondary"
> } = { primary: "SomeSkill", secondary: "someSkill" }
> }: Robot =
3 > robotA
4 >
5 >
6 > skills: {
> primary: primaryA = "primary",
> secondary: secondaryA = "secondary"
> } =
7 > {
8 > primary
9 > :
10> "SomeSkill"
11> ,
12> secondary
13> :
14> "someSkill"
15> }
16>
17>
18> primary: primaryA = "primary"
19>
20> primaryA
21> =
22> "primary"
23>
24> ,
>
25> secondary: secondaryA = "secondary"
26>
27> secondaryA
28> =
29> "secondary"
30>
1->Emitted(3, 9) Source(15, 9) + SourceIndex(0)
2 >Emitted(3, 31) Source(19, 16) + SourceIndex(0)
3 >Emitted(3, 37) Source(19, 22) + SourceIndex(0)
4 >Emitted(3, 50) Source(18, 61) + SourceIndex(0)
5 >Emitted(3, 52) Source(15, 9) + SourceIndex(0)
6 >Emitted(3, 73) Source(18, 13) + SourceIndex(0)
7 >Emitted(3, 75) Source(18, 15) + SourceIndex(0)
8 >Emitted(3, 82) Source(18, 22) + SourceIndex(0)
9 >Emitted(3, 84) Source(18, 24) + SourceIndex(0)
10>Emitted(3, 95) Source(18, 35) + SourceIndex(0)
11>Emitted(3, 97) Source(18, 37) + SourceIndex(0)
12>Emitted(3, 106) Source(18, 46) + SourceIndex(0)
13>Emitted(3, 108) Source(18, 48) + SourceIndex(0)
14>Emitted(3, 119) Source(18, 59) + SourceIndex(0)
15>Emitted(3, 121) Source(18, 61) + SourceIndex(0)
16>Emitted(3, 126) Source(18, 61) + SourceIndex(0)
17>Emitted(3, 128) Source(16, 13) + SourceIndex(0)
18>Emitted(3, 143) Source(16, 42) + SourceIndex(0)
19>Emitted(3, 145) Source(16, 22) + SourceIndex(0)
20>Emitted(3, 153) Source(16, 30) + SourceIndex(0)
21>Emitted(3, 172) Source(16, 33) + SourceIndex(0)
22>Emitted(3, 181) Source(16, 42) + SourceIndex(0)
23>Emitted(3, 186) Source(16, 42) + SourceIndex(0)
24>Emitted(3, 188) Source(17, 13) + SourceIndex(0)
25>Emitted(3, 205) Source(17, 48) + SourceIndex(0)
26>Emitted(3, 207) Source(17, 24) + SourceIndex(0)
27>Emitted(3, 217) Source(17, 34) + SourceIndex(0)
28>Emitted(3, 236) Source(17, 37) + SourceIndex(0)
29>Emitted(3, 247) Source(17, 48) + SourceIndex(0)
30>Emitted(3, 252) Source(17, 48) + SourceIndex(0)
3 > robotA
4 >
5 >
6 > skills: {
> primary: primaryA = "primary",
> secondary: secondaryA = "secondary"
> } = { primary: "SomeSkill", secondary: "someSkill" }
7 >
8 > skills: {
> primary: primaryA = "primary",
> secondary: secondaryA = "secondary"
> } =
9 > {
10> primary
11> :
12> "SomeSkill"
13> ,
14> secondary
15> :
16> "someSkill"
17> }
18>
19>
20> primary: primaryA = "primary"
21>
22> primaryA
23> =
24> "primary"
25>
26> ,
>
27> secondary: secondaryA = "secondary"
28>
29> secondaryA
30> =
31> "secondary"
32>
1->Emitted(3, 9) Source(14, 5) + SourceIndex(0)
2 >Emitted(3, 30) Source(19, 16) + SourceIndex(0)
3 >Emitted(3, 36) Source(19, 22) + SourceIndex(0)
4 >Emitted(3, 41) Source(19, 22) + SourceIndex(0)
5 >Emitted(3, 43) Source(15, 9) + SourceIndex(0)
6 >Emitted(3, 57) Source(18, 61) + SourceIndex(0)
7 >Emitted(3, 59) Source(15, 9) + SourceIndex(0)
8 >Emitted(3, 80) Source(18, 13) + SourceIndex(0)
9 >Emitted(3, 82) Source(18, 15) + SourceIndex(0)
10>Emitted(3, 89) Source(18, 22) + SourceIndex(0)
11>Emitted(3, 91) Source(18, 24) + SourceIndex(0)
12>Emitted(3, 102) Source(18, 35) + SourceIndex(0)
13>Emitted(3, 104) Source(18, 37) + SourceIndex(0)
14>Emitted(3, 113) Source(18, 46) + SourceIndex(0)
15>Emitted(3, 115) Source(18, 48) + SourceIndex(0)
16>Emitted(3, 126) Source(18, 59) + SourceIndex(0)
17>Emitted(3, 128) Source(18, 61) + SourceIndex(0)
18>Emitted(3, 133) Source(18, 61) + SourceIndex(0)
19>Emitted(3, 135) Source(16, 13) + SourceIndex(0)
20>Emitted(3, 150) Source(16, 42) + SourceIndex(0)
21>Emitted(3, 152) Source(16, 22) + SourceIndex(0)
22>Emitted(3, 160) Source(16, 30) + SourceIndex(0)
23>Emitted(3, 179) Source(16, 33) + SourceIndex(0)
24>Emitted(3, 188) Source(16, 42) + SourceIndex(0)
25>Emitted(3, 193) Source(16, 42) + SourceIndex(0)
26>Emitted(3, 195) Source(17, 13) + SourceIndex(0)
27>Emitted(3, 212) Source(17, 48) + SourceIndex(0)
28>Emitted(3, 214) Source(17, 24) + SourceIndex(0)
29>Emitted(3, 224) Source(17, 34) + SourceIndex(0)
30>Emitted(3, 243) Source(17, 37) + SourceIndex(0)
31>Emitted(3, 254) Source(17, 48) + SourceIndex(0)
32>Emitted(3, 259) Source(17, 48) + SourceIndex(0)
---
>>> console.log(primaryA);
1 >^^^^
@@ -455,7 +465,7 @@ sourceFile:sourceMapValidationDestructuringParameterNestedObjectBindingPatternDe
3 > ^^^^
4 > ^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>
2 >function
@@ -468,58 +478,64 @@ sourceFile:sourceMapValidationDestructuringParameterNestedObjectBindingPatternDe
4 >Emitted(10, 15) Source(32, 15) + SourceIndex(0)
5 >Emitted(10, 17) Source(32, 93) + SourceIndex(0)
---
>>> var _b = (_a === void 0 ? robotA : _a).skills, skills = _b === void 0 ? { primary: "SomeSkill", secondary: "someSkill" } : _b;
>>> var _b = _a === void 0 ? robotA : _a, _c = _b.skills, skills = _c === void 0 ? { primary: "SomeSkill", secondary: "someSkill" } : _c;
1->^^^^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^
4 > ^^^^^^^^^^^^^
5 > ^^
6 > ^^^^^^
7 > ^^^^^^^^^^^^^^^^^^^
8 > ^^
9 > ^^^^^^^
10> ^^
11> ^^^^^^^^^^^
12> ^^
13> ^^^^^^^^^
14> ^^
15> ^^^^^^^^^^^
16> ^^
17> ^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^
3 > ^^^^^^
4 > ^^^^^
5 > ^^
6 > ^^^^^^^^^^^^^^
7 > ^^
8 > ^^^^^^
9 > ^^^^^^^^^^^^^^^^^^^
10> ^^
11> ^^^^^^^
12> ^^
13> ^^^^^^^^^^^
14> ^^
15> ^^^^^^^^^
16> ^^
17> ^^^^^^^^^^^
18> ^^
19> ^^^^^
1->
2 > skills = { primary: "SomeSkill", secondary: "someSkill" } }: Robot =
3 > robotA
4 >
5 >
6 > skills
7 > =
8 > {
9 > primary
10> :
11> "SomeSkill"
12> ,
13> secondary
14> :
15> "someSkill"
16> }
17>
1->Emitted(11, 9) Source(32, 17) + SourceIndex(0)
2 >Emitted(11, 31) Source(32, 87) + SourceIndex(0)
3 >Emitted(11, 37) Source(32, 93) + SourceIndex(0)
4 >Emitted(11, 50) Source(32, 74) + SourceIndex(0)
5 >Emitted(11, 52) Source(32, 17) + SourceIndex(0)
6 >Emitted(11, 58) Source(32, 23) + SourceIndex(0)
7 >Emitted(11, 77) Source(32, 26) + SourceIndex(0)
8 >Emitted(11, 79) Source(32, 28) + SourceIndex(0)
9 >Emitted(11, 86) Source(32, 35) + SourceIndex(0)
10>Emitted(11, 88) Source(32, 37) + SourceIndex(0)
11>Emitted(11, 99) Source(32, 48) + SourceIndex(0)
12>Emitted(11, 101) Source(32, 50) + SourceIndex(0)
13>Emitted(11, 110) Source(32, 59) + SourceIndex(0)
14>Emitted(11, 112) Source(32, 61) + SourceIndex(0)
15>Emitted(11, 123) Source(32, 72) + SourceIndex(0)
16>Emitted(11, 125) Source(32, 74) + SourceIndex(0)
17>Emitted(11, 130) Source(32, 74) + SourceIndex(0)
2 > { skills = { primary: "SomeSkill", secondary: "someSkill" } }: Robot =
3 > robotA
4 >
5 >
6 > skills = { primary: "SomeSkill", secondary: "someSkill" }
7 >
8 > skills
9 > =
10> {
11> primary
12> :
13> "SomeSkill"
14> ,
15> secondary
16> :
17> "someSkill"
18> }
19>
1->Emitted(11, 9) Source(32, 15) + SourceIndex(0)
2 >Emitted(11, 30) Source(32, 87) + SourceIndex(0)
3 >Emitted(11, 36) Source(32, 93) + SourceIndex(0)
4 >Emitted(11, 41) Source(32, 93) + SourceIndex(0)
5 >Emitted(11, 43) Source(32, 17) + SourceIndex(0)
6 >Emitted(11, 57) Source(32, 74) + SourceIndex(0)
7 >Emitted(11, 59) Source(32, 17) + SourceIndex(0)
8 >Emitted(11, 65) Source(32, 23) + SourceIndex(0)
9 >Emitted(11, 84) Source(32, 26) + SourceIndex(0)
10>Emitted(11, 86) Source(32, 28) + SourceIndex(0)
11>Emitted(11, 93) Source(32, 35) + SourceIndex(0)
12>Emitted(11, 95) Source(32, 37) + SourceIndex(0)
13>Emitted(11, 106) Source(32, 48) + SourceIndex(0)
14>Emitted(11, 108) Source(32, 50) + SourceIndex(0)
15>Emitted(11, 117) Source(32, 59) + SourceIndex(0)
16>Emitted(11, 119) Source(32, 61) + SourceIndex(0)
17>Emitted(11, 130) Source(32, 72) + SourceIndex(0)
18>Emitted(11, 132) Source(32, 74) + SourceIndex(0)
19>Emitted(11, 137) Source(32, 74) + SourceIndex(0)
---
>>> console.log(skills.primary);
1 >^^^^
@@ -33,7 +33,7 @@ foo3({ name: "Edger", skill: "cutting edges" });
var hello = "hello";
var robotA = { name: "mower", skill: "mowing" };
function foo1(_a) {
var _b = (_a === void 0 ? {} : _a).name, nameA = _b === void 0 ? "<NoName>" : _b;
var _b = _a === void 0 ? {} : _a, _c = _b.name, nameA = _c === void 0 ? "<NoName>" : _c;
console.log(nameA);
}
function foo2(_a) {
@@ -41,7 +41,7 @@ function foo2(_a) {
console.log(nameB);
}
function foo3(_a) {
var _b = (_a === void 0 ? {} : _a).name, name = _b === void 0 ? "<NoName>" : _b;
var _b = _a === void 0 ? {} : _a, _c = _b.name, name = _c === void 0 ? "<NoName>" : _c;
console.log(name);
}
foo1(robotA);
@@ -1,3 +1,3 @@
//// [sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.js.map]
{"version":3,"file":"sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.js","sourceRoot":"","sources":["sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.ts"],"names":[],"mappings":"AAOA,IAAI,KAAK,GAAG,OAAO,CAAC;AACpB,IAAI,MAAM,GAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAEvD,SAAS,IAAI,CAAC,EAAyC;QAAvC,sBAAoC,EAAG,WAAf,EAAlB,KAAK,mBAAG,UAAU,KAAA;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AACD,SAAS,IAAI,CAAC,EAAmE;QAAnE,qBAAiE,EAAE,KAAA,EAAjE,YAAwB,EAAlB,KAAK,mBAAG,UAAU,KAAA,EAAE,aAAyB,EAAlB,MAAM,mBAAG,SAAS,KAAA;IAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AACD,SAAS,IAAI,CAAC,EAAiC;QAA/B,sBAA6B,EAAE,WAAd,EAAjB,IAAI,mBAAG,UAAU,KAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;AAEhD,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;AAEhD,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC"}
//// https://sokra.github.io/source-map-visualization#base64,dmFyIGhlbGxvID0gImhlbGxvIjsNCnZhciByb2JvdEEgPSB7IG5hbWU6ICJtb3dlciIsIHNraWxsOiAibW93aW5nIiB9Ow0KZnVuY3Rpb24gZm9vMShfYSkgew0KICAgIHZhciBfYiA9IChfYSA9PT0gdm9pZCAwID8ge30gOiBfYSkubmFtZSwgbmFtZUEgPSBfYiA9PT0gdm9pZCAwID8gIjxOb05hbWU+IiA6IF9iOw0KICAgIGNvbnNvbGUubG9nKG5hbWVBKTsNCn0NCmZ1bmN0aW9uIGZvbzIoX2EpIHsNCiAgICB2YXIgX2IgPSBfYSA9PT0gdm9pZCAwID8ge30gOiBfYSwgX2MgPSBfYi5uYW1lLCBuYW1lQiA9IF9jID09PSB2b2lkIDAgPyAiPE5vTmFtZT4iIDogX2MsIF9kID0gX2Iuc2tpbGwsIHNraWxsQiA9IF9kID09PSB2b2lkIDAgPyAibm9Ta2lsbCIgOiBfZDsNCiAgICBjb25zb2xlLmxvZyhuYW1lQik7DQp9DQpmdW5jdGlvbiBmb28zKF9hKSB7DQogICAgdmFyIF9iID0gKF9hID09PSB2b2lkIDAgPyB7fSA6IF9hKS5uYW1lLCBuYW1lID0gX2IgPT09IHZvaWQgMCA/ICI8Tm9OYW1lPiIgOiBfYjsNCiAgICBjb25zb2xlLmxvZyhuYW1lKTsNCn0NCmZvbzEocm9ib3RBKTsNCmZvbzEoeyBuYW1lOiAiRWRnZXIiLCBza2lsbDogImN1dHRpbmcgZWRnZXMiIH0pOw0KZm9vMihyb2JvdEEpOw0KZm9vMih7IG5hbWU6ICJFZGdlciIsIHNraWxsOiAiY3V0dGluZyBlZGdlcyIgfSk7DQpmb28zKHJvYm90QSk7DQpmb28zKHsgbmFtZTogIkVkZ2VyIiwgc2tpbGw6ICJjdXR0aW5nIGVkZ2VzIiB9KTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25EZXN0cnVjdHVyaW5nUGFyYW1ldGVyT2JqZWN0QmluZGluZ1BhdHRlcm5EZWZhdWx0VmFsdWVzLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJPYmplY3RCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVzdHJ1Y3R1cmluZ1BhcmFtZXRlck9iamVjdEJpbmRpbmdQYXR0ZXJuRGVmYXVsdFZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUM7QUFDcEIsSUFBSSxNQUFNLEdBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUV2RCxTQUFTLElBQUksQ0FBQyxFQUF5QztRQUF2QyxzQkFBb0MsRUFBRyxXQUFmLEVBQWxCLEtBQUssbUJBQUcsVUFBVSxLQUFBO0lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUNELFNBQVMsSUFBSSxDQUFDLEVBQW1FO1FBQW5FLHFCQUFpRSxFQUFFLEtBQUEsRUFBakUsWUFBd0IsRUFBbEIsS0FBSyxtQkFBRyxVQUFVLEtBQUEsRUFBRSxhQUF5QixFQUFsQixNQUFNLG1CQUFHLFNBQVMsS0FBQTtJQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFDRCxTQUFTLElBQUksQ0FBQyxFQUFpQztRQUEvQixzQkFBNkIsRUFBRSxXQUFkLEVBQWpCLElBQUksbUJBQUcsVUFBVSxLQUFBO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNiLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFFaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUVoRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDYixJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDIn0=,aW50ZXJmYWNlIFJvYm90IHsKICAgIG5hbWU/OiBzdHJpbmc7CiAgICBza2lsbD86IHN0cmluZzsKfQpkZWNsYXJlIHZhciBjb25zb2xlOiB7CiAgICBsb2cobXNnOiBzdHJpbmcpOiB2b2lkOwp9CnZhciBoZWxsbyA9ICJoZWxsbyI7CnZhciByb2JvdEE6IFJvYm90ID0geyBuYW1lOiAibW93ZXIiLCBza2lsbDogIm1vd2luZyIgfTsKCmZ1bmN0aW9uIGZvbzEoeyBuYW1lOiBuYW1lQSA9ICI8Tm9OYW1lPiIgfTogUm9ib3QgPSB7IH0pIHsKICAgIGNvbnNvbGUubG9nKG5hbWVBKTsKfQpmdW5jdGlvbiBmb28yKHsgbmFtZTogbmFtZUIgPSAiPE5vTmFtZT4iLCBza2lsbDogc2tpbGxCID0gIm5vU2tpbGwiIH06IFJvYm90ID0ge30pIHsKICAgIGNvbnNvbGUubG9nKG5hbWVCKTsKfQpmdW5jdGlvbiBmb28zKHsgbmFtZSA9ICI8Tm9OYW1lPiIgfTogUm9ib3QgPSB7fSkgewogICAgY29uc29sZS5sb2cobmFtZSk7Cn0KCmZvbzEocm9ib3RBKTsKZm9vMSh7IG5hbWU6ICJFZGdlciIsIHNraWxsOiAiY3V0dGluZyBlZGdlcyIgfSk7Cgpmb28yKHJvYm90QSk7CmZvbzIoeyBuYW1lOiAiRWRnZXIiLCBza2lsbDogImN1dHRpbmcgZWRnZXMiIH0pOwoKZm9vMyhyb2JvdEEpOwpmb28zKHsgbmFtZTogIkVkZ2VyIiwgc2tpbGw6ICJjdXR0aW5nIGVkZ2VzIiB9KTsK
{"version":3,"file":"sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.js","sourceRoot":"","sources":["sourceMapValidationDestructuringParameterObjectBindingPatternDefaultValues.ts"],"names":[],"mappings":"AAOA,IAAI,KAAK,GAAG,OAAO,CAAC;AACpB,IAAI,MAAM,GAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAEvD,SAAS,IAAI,CAAC,EAAyC;QAAzC,qBAAsC,EAAG,KAAA,EAAvC,YAAwB,EAAlB,KAAK,mBAAG,UAAU,KAAA;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AACD,SAAS,IAAI,CAAC,EAAmE;QAAnE,qBAAiE,EAAE,KAAA,EAAjE,YAAwB,EAAlB,KAAK,mBAAG,UAAU,KAAA,EAAE,aAAyB,EAAlB,MAAM,mBAAG,SAAS,KAAA;IAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AACD,SAAS,IAAI,CAAC,EAAiC;QAAjC,qBAA+B,EAAE,KAAA,EAA/B,YAAiB,EAAjB,IAAI,mBAAG,UAAU,KAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;AAEhD,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;AAEhD,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC"}
//// https://sokra.github.io/source-map-visualization#base64,dmFyIGhlbGxvID0gImhlbGxvIjsNCnZhciByb2JvdEEgPSB7IG5hbWU6ICJtb3dlciIsIHNraWxsOiAibW93aW5nIiB9Ow0KZnVuY3Rpb24gZm9vMShfYSkgew0KICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyB7fSA6IF9hLCBfYyA9IF9iLm5hbWUsIG5hbWVBID0gX2MgPT09IHZvaWQgMCA/ICI8Tm9OYW1lPiIgOiBfYzsNCiAgICBjb25zb2xlLmxvZyhuYW1lQSk7DQp9DQpmdW5jdGlvbiBmb28yKF9hKSB7DQogICAgdmFyIF9iID0gX2EgPT09IHZvaWQgMCA/IHt9IDogX2EsIF9jID0gX2IubmFtZSwgbmFtZUIgPSBfYyA9PT0gdm9pZCAwID8gIjxOb05hbWU+IiA6IF9jLCBfZCA9IF9iLnNraWxsLCBza2lsbEIgPSBfZCA9PT0gdm9pZCAwID8gIm5vU2tpbGwiIDogX2Q7DQogICAgY29uc29sZS5sb2cobmFtZUIpOw0KfQ0KZnVuY3Rpb24gZm9vMyhfYSkgew0KICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyB7fSA6IF9hLCBfYyA9IF9iLm5hbWUsIG5hbWUgPSBfYyA9PT0gdm9pZCAwID8gIjxOb05hbWU+IiA6IF9jOw0KICAgIGNvbnNvbGUubG9nKG5hbWUpOw0KfQ0KZm9vMShyb2JvdEEpOw0KZm9vMSh7IG5hbWU6ICJFZGdlciIsIHNraWxsOiAiY3V0dGluZyBlZGdlcyIgfSk7DQpmb28yKHJvYm90QSk7DQpmb28yKHsgbmFtZTogIkVkZ2VyIiwgc2tpbGw6ICJjdXR0aW5nIGVkZ2VzIiB9KTsNCmZvbzMocm9ib3RBKTsNCmZvbzMoeyBuYW1lOiAiRWRnZXIiLCBza2lsbDogImN1dHRpbmcgZWRnZXMiIH0pOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJPYmplY3RCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJPYmplY3RCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVzdHJ1Y3R1cmluZ1BhcmFtZXRlck9iamVjdEJpbmRpbmdQYXR0ZXJuRGVmYXVsdFZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUM7QUFDcEIsSUFBSSxNQUFNLEdBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUV2RCxTQUFTLElBQUksQ0FBQyxFQUF5QztRQUF6QyxxQkFBc0MsRUFBRyxLQUFBLEVBQXZDLFlBQXdCLEVBQWxCLEtBQUssbUJBQUcsVUFBVSxLQUFBO0lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUNELFNBQVMsSUFBSSxDQUFDLEVBQW1FO1FBQW5FLHFCQUFpRSxFQUFFLEtBQUEsRUFBakUsWUFBd0IsRUFBbEIsS0FBSyxtQkFBRyxVQUFVLEtBQUEsRUFBRSxhQUF5QixFQUFsQixNQUFNLG1CQUFHLFNBQVMsS0FBQTtJQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFDRCxTQUFTLElBQUksQ0FBQyxFQUFpQztRQUFqQyxxQkFBK0IsRUFBRSxLQUFBLEVBQS9CLFlBQWlCLEVBQWpCLElBQUksbUJBQUcsVUFBVSxLQUFBO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNiLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7QUFFaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztBQUVoRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDYixJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDIn0=,aW50ZXJmYWNlIFJvYm90IHsKICAgIG5hbWU/OiBzdHJpbmc7CiAgICBza2lsbD86IHN0cmluZzsKfQpkZWNsYXJlIHZhciBjb25zb2xlOiB7CiAgICBsb2cobXNnOiBzdHJpbmcpOiB2b2lkOwp9CnZhciBoZWxsbyA9ICJoZWxsbyI7CnZhciByb2JvdEE6IFJvYm90ID0geyBuYW1lOiAibW93ZXIiLCBza2lsbDogIm1vd2luZyIgfTsKCmZ1bmN0aW9uIGZvbzEoeyBuYW1lOiBuYW1lQSA9ICI8Tm9OYW1lPiIgfTogUm9ib3QgPSB7IH0pIHsKICAgIGNvbnNvbGUubG9nKG5hbWVBKTsKfQpmdW5jdGlvbiBmb28yKHsgbmFtZTogbmFtZUIgPSAiPE5vTmFtZT4iLCBza2lsbDogc2tpbGxCID0gIm5vU2tpbGwiIH06IFJvYm90ID0ge30pIHsKICAgIGNvbnNvbGUubG9nKG5hbWVCKTsKfQpmdW5jdGlvbiBmb28zKHsgbmFtZSA9ICI8Tm9OYW1lPiIgfTogUm9ib3QgPSB7fSkgewogICAgY29uc29sZS5sb2cobmFtZSk7Cn0KCmZvbzEocm9ib3RBKTsKZm9vMSh7IG5hbWU6ICJFZGdlciIsIHNraWxsOiAiY3V0dGluZyBlZGdlcyIgfSk7Cgpmb28yKHJvYm90QSk7CmZvbzIoeyBuYW1lOiAiRWRnZXIiLCBza2lsbDogImN1dHRpbmcgZWRnZXMiIH0pOwoKZm9vMyhyb2JvdEEpOwpmb28zKHsgbmFtZTogIkVkZ2VyIiwgc2tpbGw6ICJjdXR0aW5nIGVkZ2VzIiB9KTsK
@@ -87,7 +87,7 @@ sourceFile:sourceMapValidationDestructuringParameterObjectBindingPatternDefaultV
3 > ^^^^
4 > ^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>
>
@@ -101,34 +101,40 @@ sourceFile:sourceMapValidationDestructuringParameterObjectBindingPatternDefaultV
4 >Emitted(3, 15) Source(11, 15) + SourceIndex(0)
5 >Emitted(3, 17) Source(11, 56) + SourceIndex(0)
---
>>> var _b = (_a === void 0 ? {} : _a).name, nameA = _b === void 0 ? "<NoName>" : _b;
>>> var _b = _a === void 0 ? {} : _a, _c = _b.name, nameA = _c === void 0 ? "<NoName>" : _c;
1->^^^^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^^
3 > ^^
4 > ^^^^^^^^^^^
5 > ^^
6 > ^^^^^
7 > ^^^^^^^^^^^^^^^^^^^
8 > ^^^^^^^^^^
9 > ^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^
3 > ^^
4 > ^^^^^
5 > ^^
6 > ^^^^^^^^^^^^
7 > ^^
8 > ^^^^^
9 > ^^^^^^^^^^^^^^^^^^^
10> ^^^^^^^^^^
11> ^^^^^
1->
2 > name: nameA = "<NoName>" }: Robot =
3 > { }
4 >
5 >
6 > nameA
7 > =
8 > "<NoName>"
9 >
1->Emitted(4, 9) Source(11, 17) + SourceIndex(0)
2 >Emitted(4, 31) Source(11, 53) + SourceIndex(0)
3 >Emitted(4, 33) Source(11, 56) + SourceIndex(0)
4 >Emitted(4, 44) Source(11, 41) + SourceIndex(0)
5 >Emitted(4, 46) Source(11, 23) + SourceIndex(0)
6 >Emitted(4, 51) Source(11, 28) + SourceIndex(0)
7 >Emitted(4, 70) Source(11, 31) + SourceIndex(0)
8 >Emitted(4, 80) Source(11, 41) + SourceIndex(0)
9 >Emitted(4, 85) Source(11, 41) + SourceIndex(0)
2 > { name: nameA = "<NoName>" }: Robot =
3 > { }
4 >
5 >
6 > name: nameA = "<NoName>"
7 >
8 > nameA
9 > =
10> "<NoName>"
11>
1->Emitted(4, 9) Source(11, 15) + SourceIndex(0)
2 >Emitted(4, 30) Source(11, 53) + SourceIndex(0)
3 >Emitted(4, 32) Source(11, 56) + SourceIndex(0)
4 >Emitted(4, 37) Source(11, 56) + SourceIndex(0)
5 >Emitted(4, 39) Source(11, 17) + SourceIndex(0)
6 >Emitted(4, 51) Source(11, 41) + SourceIndex(0)
7 >Emitted(4, 53) Source(11, 23) + SourceIndex(0)
8 >Emitted(4, 58) Source(11, 28) + SourceIndex(0)
9 >Emitted(4, 77) Source(11, 31) + SourceIndex(0)
10>Emitted(4, 87) Source(11, 41) + SourceIndex(0)
11>Emitted(4, 92) Source(11, 41) + SourceIndex(0)
---
>>> console.log(nameA);
1 >^^^^
@@ -285,7 +291,7 @@ sourceFile:sourceMapValidationDestructuringParameterObjectBindingPatternDefaultV
3 > ^^^^
4 > ^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>
2 >function
@@ -298,34 +304,40 @@ sourceFile:sourceMapValidationDestructuringParameterObjectBindingPatternDefaultV
4 >Emitted(11, 15) Source(17, 15) + SourceIndex(0)
5 >Emitted(11, 17) Source(17, 48) + SourceIndex(0)
---
>>> var _b = (_a === void 0 ? {} : _a).name, name = _b === void 0 ? "<NoName>" : _b;
>>> var _b = _a === void 0 ? {} : _a, _c = _b.name, name = _c === void 0 ? "<NoName>" : _c;
1->^^^^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^^
3 > ^^
4 > ^^^^^^^^^^^
5 > ^^
6 > ^^^^
7 > ^^^^^^^^^^^^^^^^^^^
8 > ^^^^^^^^^^
9 > ^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^
3 > ^^
4 > ^^^^^
5 > ^^
6 > ^^^^^^^^^^^^
7 > ^^
8 > ^^^^
9 > ^^^^^^^^^^^^^^^^^^^
10> ^^^^^^^^^^
11> ^^^^^
1->
2 > name = "<NoName>" }: Robot =
3 > {}
4 >
5 >
6 > name
7 > =
8 > "<NoName>"
9 >
1->Emitted(12, 9) Source(17, 17) + SourceIndex(0)
2 >Emitted(12, 31) Source(17, 46) + SourceIndex(0)
3 >Emitted(12, 33) Source(17, 48) + SourceIndex(0)
4 >Emitted(12, 44) Source(17, 34) + SourceIndex(0)
5 >Emitted(12, 46) Source(17, 17) + SourceIndex(0)
6 >Emitted(12, 50) Source(17, 21) + SourceIndex(0)
7 >Emitted(12, 69) Source(17, 24) + SourceIndex(0)
8 >Emitted(12, 79) Source(17, 34) + SourceIndex(0)
9 >Emitted(12, 84) Source(17, 34) + SourceIndex(0)
2 > { name = "<NoName>" }: Robot =
3 > {}
4 >
5 >
6 > name = "<NoName>"
7 >
8 > name
9 > =
10> "<NoName>"
11>
1->Emitted(12, 9) Source(17, 15) + SourceIndex(0)
2 >Emitted(12, 30) Source(17, 46) + SourceIndex(0)
3 >Emitted(12, 32) Source(17, 48) + SourceIndex(0)
4 >Emitted(12, 37) Source(17, 48) + SourceIndex(0)
5 >Emitted(12, 39) Source(17, 17) + SourceIndex(0)
6 >Emitted(12, 51) Source(17, 34) + SourceIndex(0)
7 >Emitted(12, 53) Source(17, 17) + SourceIndex(0)
8 >Emitted(12, 57) Source(17, 21) + SourceIndex(0)
9 >Emitted(12, 76) Source(17, 24) + SourceIndex(0)
10>Emitted(12, 86) Source(17, 34) + SourceIndex(0)
11>Emitted(12, 91) Source(17, 34) + SourceIndex(0)
---
>>> console.log(name);
1 >^^^^
@@ -40,7 +40,7 @@ function foo1(_a) {
console.log(nameA);
}
function foo2(_a) {
var _b = (_a === void 0 ? [-1, "name", "skill"] : _a)[0], numberB = _b === void 0 ? -1 : _b;
var _b = _a === void 0 ? [-1, "name", "skill"] : _a, _c = _b[0], numberB = _c === void 0 ? -1 : _c;
console.log(numberB);
}
function foo3(_a) {
@@ -1,3 +1,3 @@
//// [sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.js.map]
{"version":3,"file":"sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.js","sourceRoot":"","sources":["sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.ts"],"names":[],"mappings":"AAIA,IAAI,MAAM,GAAU,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE3C,SAAS,IAAI,CAAC,EAAmD;QAAnD,qBAA8B,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAA,EAAhD,UAAgB,EAAhB,KAAK,mBAAG,QAAQ,KAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,IAAI,CAAC,EAA6C;QAA5C,sBAAuB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,SAAhC,EAAZ,OAAO,mBAAG,CAAC,CAAC,KAAA;IACvB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,IAAI,CAAC,EAAkF;QAAlF,qBAA6D,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAA,EAAjF,UAAa,EAAb,QAAQ,mBAAG,CAAC,CAAC,KAAA,EAAE,UAAe,EAAf,MAAM,mBAAG,MAAM,KAAA,EAAE,UAAiB,EAAjB,OAAO,mBAAG,OAAO,KAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CAAC,EAA6D;QAA7D,qBAAwC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAA,EAA5D,UAAa,EAAb,QAAQ,mBAAG,CAAC,CAAC,KAAA,EAAK,UAAU,cAAA;IACvC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5B,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC"}
//// https://sokra.github.io/source-map-visualization#base64,dmFyIHJvYm90QSA9IFsxLCAibW93ZXIiLCAibW93aW5nIl07DQpmdW5jdGlvbiBmb28xKF9hKSB7DQogICAgdmFyIF9iID0gX2EgPT09IHZvaWQgMCA/IFstMSwgIm5hbWUiLCAic2tpbGwiXSA6IF9hLCBfYyA9IF9iWzFdLCBuYW1lQSA9IF9jID09PSB2b2lkIDAgPyAibm9OYW1lIiA6IF9jOw0KICAgIGNvbnNvbGUubG9nKG5hbWVBKTsNCn0NCmZ1bmN0aW9uIGZvbzIoX2EpIHsNCiAgICB2YXIgX2IgPSAoX2EgPT09IHZvaWQgMCA/IFstMSwgIm5hbWUiLCAic2tpbGwiXSA6IF9hKVswXSwgbnVtYmVyQiA9IF9iID09PSB2b2lkIDAgPyAtMSA6IF9iOw0KICAgIGNvbnNvbGUubG9nKG51bWJlckIpOw0KfQ0KZnVuY3Rpb24gZm9vMyhfYSkgew0KICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyBbLTEsICJuYW1lIiwgInNraWxsIl0gOiBfYSwgX2MgPSBfYlswXSwgbnVtYmVyQTIgPSBfYyA9PT0gdm9pZCAwID8gLTEgOiBfYywgX2QgPSBfYlsxXSwgbmFtZUEyID0gX2QgPT09IHZvaWQgMCA/ICJuYW1lIiA6IF9kLCBfZSA9IF9iWzJdLCBza2lsbEEyID0gX2UgPT09IHZvaWQgMCA/ICJza2lsbCIgOiBfZTsNCiAgICBjb25zb2xlLmxvZyhuYW1lQTIpOw0KfQ0KZnVuY3Rpb24gZm9vNChfYSkgew0KICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyBbLTEsICJuYW1lIiwgInNraWxsIl0gOiBfYSwgX2MgPSBfYlswXSwgbnVtYmVyQTMgPSBfYyA9PT0gdm9pZCAwID8gLTEgOiBfYywgcm9ib3RBSW5mbyA9IF9iLnNsaWNlKDEpOw0KICAgIGNvbnNvbGUubG9nKHJvYm90QUluZm8pOw0KfQ0KZm9vMShyb2JvdEEpOw0KZm9vMShbMiwgInRyaW1tZXIiLCAidHJpbW1pbmciXSk7DQpmb28yKHJvYm90QSk7DQpmb28yKFsyLCAidHJpbW1lciIsICJ0cmltbWluZyJdKTsNCmZvbzMocm9ib3RBKTsNCmZvbzMoWzIsICJ0cmltbWVyIiwgInRyaW1taW5nIl0pOw0KZm9vNChyb2JvdEEpOw0KZm9vNChbMiwgInRyaW1tZXIiLCAidHJpbW1pbmciXSk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1zb3VyY2VNYXBWYWxpZGF0aW9uRGVzdHJ1Y3R1cmluZ1BhcmFtZXRlcnRBcnJheUJpbmRpbmdQYXR0ZXJuRGVmYXVsdFZhbHVlcy5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJ0QXJyYXlCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVzdHJ1Y3R1cmluZ1BhcmFtZXRlcnRBcnJheUJpbmRpbmdQYXR0ZXJuRGVmYXVsdFZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxJQUFJLE1BQU0sR0FBVSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFM0MsU0FBUyxJQUFJLENBQUMsRUFBbUQ7UUFBbkQscUJBQThCLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFBLEVBQWhELFVBQWdCLEVBQWhCLEtBQUssbUJBQUcsUUFBUSxLQUFBO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLEVBQTZDO1FBQTVDLHNCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBaEMsRUFBWixPQUFPLG1CQUFHLENBQUMsQ0FBQyxLQUFBO0lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLEVBQWtGO1FBQWxGLHFCQUE2RCxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsS0FBQSxFQUFqRixVQUFhLEVBQWIsUUFBUSxtQkFBRyxDQUFDLENBQUMsS0FBQSxFQUFFLFVBQWUsRUFBZixNQUFNLG1CQUFHLE1BQU0sS0FBQSxFQUFFLFVBQWlCLEVBQWpCLE9BQU8sbUJBQUcsT0FBTyxLQUFBO0lBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLEVBQTZEO1FBQTdELHFCQUF3QyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsS0FBQSxFQUE1RCxVQUFhLEVBQWIsUUFBUSxtQkFBRyxDQUFDLENBQUMsS0FBQSxFQUFLLFVBQVUsY0FBQTtJQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDYixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFFakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBRWpDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNiLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUVqQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDYixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMifQ==,ZGVjbGFyZSB2YXIgY29uc29sZTogewogICAgbG9nKG1zZzogYW55KTogdm9pZDsKfQp0eXBlIFJvYm90ID0gW251bWJlciwgc3RyaW5nLCBzdHJpbmddOwp2YXIgcm9ib3RBOiBSb2JvdCA9IFsxLCAibW93ZXIiLCAibW93aW5nIl07CgpmdW5jdGlvbiBmb28xKFssIG5hbWVBID0gIm5vTmFtZSJdOiBSb2JvdCA9IFstMSwgIm5hbWUiLCAic2tpbGwiXSkgewogICAgY29uc29sZS5sb2cobmFtZUEpOwp9CgpmdW5jdGlvbiBmb28yKFtudW1iZXJCID0gLTFdOiBSb2JvdCA9IFstMSwgIm5hbWUiLCAic2tpbGwiXSkgewogICAgY29uc29sZS5sb2cobnVtYmVyQik7Cn0KCmZ1bmN0aW9uIGZvbzMoW251bWJlckEyID0gLTEsIG5hbWVBMiA9ICJuYW1lIiwgc2tpbGxBMiA9ICJza2lsbCJdOiBSb2JvdCA9IFstMSwgIm5hbWUiLCAic2tpbGwiXSkgewogICAgY29uc29sZS5sb2cobmFtZUEyKTsKfQoKZnVuY3Rpb24gZm9vNChbbnVtYmVyQTMgPSAtMSwgLi4ucm9ib3RBSW5mb106IFJvYm90ID0gWy0xLCAibmFtZSIsICJza2lsbCJdKSB7CiAgICBjb25zb2xlLmxvZyhyb2JvdEFJbmZvKTsKfQoKZm9vMShyb2JvdEEpOwpmb28xKFsyLCAidHJpbW1lciIsICJ0cmltbWluZyJdKTsKCmZvbzIocm9ib3RBKTsKZm9vMihbMiwgInRyaW1tZXIiLCAidHJpbW1pbmciXSk7Cgpmb28zKHJvYm90QSk7CmZvbzMoWzIsICJ0cmltbWVyIiwgInRyaW1taW5nIl0pOwoKZm9vNChyb2JvdEEpOwpmb280KFsyLCAidHJpbW1lciIsICJ0cmltbWluZyJdKTs=
{"version":3,"file":"sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.js","sourceRoot":"","sources":["sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues.ts"],"names":[],"mappings":"AAIA,IAAI,MAAM,GAAU,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAE3C,SAAS,IAAI,CAAC,EAAmD;QAAnD,qBAA8B,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAA,EAAhD,UAAgB,EAAhB,KAAK,mBAAG,QAAQ,KAAA;IAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,IAAI,CAAC,EAA6C;QAA7C,qBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAA,EAA5C,UAAY,EAAZ,OAAO,mBAAG,CAAC,CAAC,KAAA;IACvB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,IAAI,CAAC,EAAkF;QAAlF,qBAA6D,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAA,EAAjF,UAAa,EAAb,QAAQ,mBAAG,CAAC,CAAC,KAAA,EAAE,UAAe,EAAf,MAAM,mBAAG,MAAM,KAAA,EAAE,UAAiB,EAAjB,OAAO,mBAAG,OAAO,KAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CAAC,EAA6D;QAA7D,qBAAwC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAA,EAA5D,UAAa,EAAb,QAAQ,mBAAG,CAAC,CAAC,KAAA,EAAK,UAAU,cAAA;IACvC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5B,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC"}
//// https://sokra.github.io/source-map-visualization#base64,dmFyIHJvYm90QSA9IFsxLCAibW93ZXIiLCAibW93aW5nIl07DQpmdW5jdGlvbiBmb28xKF9hKSB7DQogICAgdmFyIF9iID0gX2EgPT09IHZvaWQgMCA/IFstMSwgIm5hbWUiLCAic2tpbGwiXSA6IF9hLCBfYyA9IF9iWzFdLCBuYW1lQSA9IF9jID09PSB2b2lkIDAgPyAibm9OYW1lIiA6IF9jOw0KICAgIGNvbnNvbGUubG9nKG5hbWVBKTsNCn0NCmZ1bmN0aW9uIGZvbzIoX2EpIHsNCiAgICB2YXIgX2IgPSBfYSA9PT0gdm9pZCAwID8gWy0xLCAibmFtZSIsICJza2lsbCJdIDogX2EsIF9jID0gX2JbMF0sIG51bWJlckIgPSBfYyA9PT0gdm9pZCAwID8gLTEgOiBfYzsNCiAgICBjb25zb2xlLmxvZyhudW1iZXJCKTsNCn0NCmZ1bmN0aW9uIGZvbzMoX2EpIHsNCiAgICB2YXIgX2IgPSBfYSA9PT0gdm9pZCAwID8gWy0xLCAibmFtZSIsICJza2lsbCJdIDogX2EsIF9jID0gX2JbMF0sIG51bWJlckEyID0gX2MgPT09IHZvaWQgMCA/IC0xIDogX2MsIF9kID0gX2JbMV0sIG5hbWVBMiA9IF9kID09PSB2b2lkIDAgPyAibmFtZSIgOiBfZCwgX2UgPSBfYlsyXSwgc2tpbGxBMiA9IF9lID09PSB2b2lkIDAgPyAic2tpbGwiIDogX2U7DQogICAgY29uc29sZS5sb2cobmFtZUEyKTsNCn0NCmZ1bmN0aW9uIGZvbzQoX2EpIHsNCiAgICB2YXIgX2IgPSBfYSA9PT0gdm9pZCAwID8gWy0xLCAibmFtZSIsICJza2lsbCJdIDogX2EsIF9jID0gX2JbMF0sIG51bWJlckEzID0gX2MgPT09IHZvaWQgMCA/IC0xIDogX2MsIHJvYm90QUluZm8gPSBfYi5zbGljZSgxKTsNCiAgICBjb25zb2xlLmxvZyhyb2JvdEFJbmZvKTsNCn0NCmZvbzEocm9ib3RBKTsNCmZvbzEoWzIsICJ0cmltbWVyIiwgInRyaW1taW5nIl0pOw0KZm9vMihyb2JvdEEpOw0KZm9vMihbMiwgInRyaW1tZXIiLCAidHJpbW1pbmciXSk7DQpmb28zKHJvYm90QSk7DQpmb28zKFsyLCAidHJpbW1lciIsICJ0cmltbWluZyJdKTsNCmZvbzQocm9ib3RBKTsNCmZvbzQoWzIsICJ0cmltbWVyIiwgInRyaW1taW5nIl0pOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJ0QXJyYXlCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJ0QXJyYXlCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VNYXBWYWxpZGF0aW9uRGVzdHJ1Y3R1cmluZ1BhcmFtZXRlcnRBcnJheUJpbmRpbmdQYXR0ZXJuRGVmYXVsdFZhbHVlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxJQUFJLE1BQU0sR0FBVSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFFM0MsU0FBUyxJQUFJLENBQUMsRUFBbUQ7UUFBbkQscUJBQThCLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFBLEVBQWhELFVBQWdCLEVBQWhCLEtBQUssbUJBQUcsUUFBUSxLQUFBO0lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLEVBQTZDO1FBQTdDLHFCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsS0FBQSxFQUE1QyxVQUFZLEVBQVosT0FBTyxtQkFBRyxDQUFDLENBQUMsS0FBQTtJQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxFQUFrRjtRQUFsRixxQkFBNkQsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUEsRUFBakYsVUFBYSxFQUFiLFFBQVEsbUJBQUcsQ0FBQyxDQUFDLEtBQUEsRUFBRSxVQUFlLEVBQWYsTUFBTSxtQkFBRyxNQUFNLEtBQUEsRUFBRSxVQUFpQixFQUFqQixPQUFPLG1CQUFHLE9BQU8sS0FBQTtJQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxFQUE2RDtRQUE3RCxxQkFBd0MsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUEsRUFBNUQsVUFBYSxFQUFiLFFBQVEsbUJBQUcsQ0FBQyxDQUFDLEtBQUEsRUFBSyxVQUFVLGNBQUE7SUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBRWpDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNiLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUVqQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDYixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFFakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDIn0=,ZGVjbGFyZSB2YXIgY29uc29sZTogewogICAgbG9nKG1zZzogYW55KTogdm9pZDsKfQp0eXBlIFJvYm90ID0gW251bWJlciwgc3RyaW5nLCBzdHJpbmddOwp2YXIgcm9ib3RBOiBSb2JvdCA9IFsxLCAibW93ZXIiLCAibW93aW5nIl07CgpmdW5jdGlvbiBmb28xKFssIG5hbWVBID0gIm5vTmFtZSJdOiBSb2JvdCA9IFstMSwgIm5hbWUiLCAic2tpbGwiXSkgewogICAgY29uc29sZS5sb2cobmFtZUEpOwp9CgpmdW5jdGlvbiBmb28yKFtudW1iZXJCID0gLTFdOiBSb2JvdCA9IFstMSwgIm5hbWUiLCAic2tpbGwiXSkgewogICAgY29uc29sZS5sb2cobnVtYmVyQik7Cn0KCmZ1bmN0aW9uIGZvbzMoW251bWJlckEyID0gLTEsIG5hbWVBMiA9ICJuYW1lIiwgc2tpbGxBMiA9ICJza2lsbCJdOiBSb2JvdCA9IFstMSwgIm5hbWUiLCAic2tpbGwiXSkgewogICAgY29uc29sZS5sb2cobmFtZUEyKTsKfQoKZnVuY3Rpb24gZm9vNChbbnVtYmVyQTMgPSAtMSwgLi4ucm9ib3RBSW5mb106IFJvYm90ID0gWy0xLCAibmFtZSIsICJza2lsbCJdKSB7CiAgICBjb25zb2xlLmxvZyhyb2JvdEFJbmZvKTsKfQoKZm9vMShyb2JvdEEpOwpmb28xKFsyLCAidHJpbW1lciIsICJ0cmltbWluZyJdKTsKCmZvbzIocm9ib3RBKTsKZm9vMihbMiwgInRyaW1tZXIiLCAidHJpbW1pbmciXSk7Cgpmb28zKHJvYm90QSk7CmZvbzMoWzIsICJ0cmltbWVyIiwgInRyaW1taW5nIl0pOwoKZm9vNChyb2JvdEEpOwpmb280KFsyLCAidHJpbW1lciIsICJ0cmltbWluZyJdKTs=
@@ -169,7 +169,7 @@ sourceFile:sourceMapValidationDestructuringParametertArrayBindingPatternDefaultV
3 > ^^^^
4 > ^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>
>
@@ -183,58 +183,64 @@ sourceFile:sourceMapValidationDestructuringParametertArrayBindingPatternDefaultV
4 >Emitted(6, 15) Source(11, 15) + SourceIndex(0)
5 >Emitted(6, 17) Source(11, 60) + SourceIndex(0)
---
>>> var _b = (_a === void 0 ? [-1, "name", "skill"] : _a)[0], numberB = _b === void 0 ? -1 : _b;
>>> var _b = _a === void 0 ? [-1, "name", "skill"] : _a, _c = _b[0], numberB = _c === void 0 ? -1 : _c;
1->^^^^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^
5 > ^
6 > ^^
7 > ^^^^^^
8 > ^^
9 > ^^^^^^^
10> ^
11> ^^^^^^^^^
12> ^^
13> ^^^^^^^
14> ^^^^^^^^^^^^^^^^^^^
15> ^
16> ^
17> ^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^
5 > ^
6 > ^^
7 > ^^^^^^
8 > ^^
9 > ^^^^^^^
10> ^
11> ^^^^^
12> ^^
13> ^^^^^^^^^^
14> ^^
15> ^^^^^^^
16> ^^^^^^^^^^^^^^^^^^^
17> ^
18> ^
19> ^^^^^
1->
2 > numberB = -1]: Robot =
3 > [
4 > -
5 > 1
6 > ,
7 > "name"
8 > ,
9 > "skill"
10> ]
11>
12>
13> numberB
14> =
15> -
16> 1
17>
1->Emitted(7, 9) Source(11, 16) + SourceIndex(0)
2 >Emitted(7, 31) Source(11, 39) + SourceIndex(0)
3 >Emitted(7, 32) Source(11, 40) + SourceIndex(0)
4 >Emitted(7, 33) Source(11, 41) + SourceIndex(0)
5 >Emitted(7, 34) Source(11, 42) + SourceIndex(0)
6 >Emitted(7, 36) Source(11, 44) + SourceIndex(0)
7 >Emitted(7, 42) Source(11, 50) + SourceIndex(0)
8 >Emitted(7, 44) Source(11, 52) + SourceIndex(0)
9 >Emitted(7, 51) Source(11, 59) + SourceIndex(0)
10>Emitted(7, 52) Source(11, 60) + SourceIndex(0)
11>Emitted(7, 61) Source(11, 28) + SourceIndex(0)
12>Emitted(7, 63) Source(11, 16) + SourceIndex(0)
13>Emitted(7, 70) Source(11, 23) + SourceIndex(0)
14>Emitted(7, 89) Source(11, 26) + SourceIndex(0)
15>Emitted(7, 90) Source(11, 27) + SourceIndex(0)
16>Emitted(7, 91) Source(11, 28) + SourceIndex(0)
17>Emitted(7, 96) Source(11, 28) + SourceIndex(0)
2 > [numberB = -1]: Robot =
3 > [
4 > -
5 > 1
6 > ,
7 > "name"
8 > ,
9 > "skill"
10> ]
11>
12>
13> numberB = -1
14>
15> numberB
16> =
17> -
18> 1
19>
1->Emitted(7, 9) Source(11, 15) + SourceIndex(0)
2 >Emitted(7, 30) Source(11, 39) + SourceIndex(0)
3 >Emitted(7, 31) Source(11, 40) + SourceIndex(0)
4 >Emitted(7, 32) Source(11, 41) + SourceIndex(0)
5 >Emitted(7, 33) Source(11, 42) + SourceIndex(0)
6 >Emitted(7, 35) Source(11, 44) + SourceIndex(0)
7 >Emitted(7, 41) Source(11, 50) + SourceIndex(0)
8 >Emitted(7, 43) Source(11, 52) + SourceIndex(0)
9 >Emitted(7, 50) Source(11, 59) + SourceIndex(0)
10>Emitted(7, 51) Source(11, 60) + SourceIndex(0)
11>Emitted(7, 56) Source(11, 60) + SourceIndex(0)
12>Emitted(7, 58) Source(11, 16) + SourceIndex(0)
13>Emitted(7, 68) Source(11, 28) + SourceIndex(0)
14>Emitted(7, 70) Source(11, 16) + SourceIndex(0)
15>Emitted(7, 77) Source(11, 23) + SourceIndex(0)
16>Emitted(7, 96) Source(11, 26) + SourceIndex(0)
17>Emitted(7, 97) Source(11, 27) + SourceIndex(0)
18>Emitted(7, 98) Source(11, 28) + SourceIndex(0)
19>Emitted(7, 103) Source(11, 28) + SourceIndex(0)
---
>>> console.log(numberB);
1 >^^^^
@@ -36,7 +36,7 @@ function foo1(_a) {
console.log(skillA);
}
function foo2(_a) {
var _b = (_a === void 0 ? ["name", ["skill1", "skill2"]] : _a)[0], nameMB = _b === void 0 ? "noName" : _b;
var _b = _a === void 0 ? ["name", ["skill1", "skill2"]] : _a, _c = _b[0], nameMB = _c === void 0 ? "noName" : _c;
console.log(nameMB);
}
function foo3(_a) {
@@ -1,3 +1,3 @@
//// [sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.js.map]
{"version":3,"file":"sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.js","sourceRoot":"","sources":["sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.ts"],"names":[],"mappings":"AAIA,IAAI,MAAM,GAAU,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAExD,SAAS,IAAI,CAAC,EAA0E;QAA1E,qBAA4C,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAA,EAAvE,UAA+B,EAA/B,MAAM,mBAAG,CAAC,SAAS,EAAE,SAAS,CAAC,KAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CAAC,EAA2D;QAA1D,sBAA4B,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAzC,EAAjB,MAAM,mBAAG,QAAQ,KAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CAAC,EAGoB;QAHnB,UAAiB,EAAjB,MAAM,mBAAG,QAAQ,KAAA,EAAE,UAGR,EAHQ,qBAG9B,CAAC,SAAS,EAAE,SAAS,CAAC,KAAA,EAFtB,UAAyB,EAAzB,aAAa,mBAAG,SAAS,KAAA,EACzB,UAA6B,EAA7B,eAAe,mBAAG,WAAW,KAAA;IAE7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAExC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAExC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC"}
//// https://sokra.github.io/source-map-visualization#base64,dmFyIHJvYm90QSA9IFsidHJpbW1lciIsIFsidHJpbW1pbmciLCAiZWRnaW5nIl1dOw0KZnVuY3Rpb24gZm9vMShfYSkgew0KICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyBbIm5hbWUiLCBbInNraWxsMSIsICJza2lsbDIiXV0gOiBfYSwgX2MgPSBfYlsxXSwgc2tpbGxBID0gX2MgPT09IHZvaWQgMCA/IFsibm9Ta2lsbCIsICJub1NraWxsIl0gOiBfYzsNCiAgICBjb25zb2xlLmxvZyhza2lsbEEpOw0KfQ0KZnVuY3Rpb24gZm9vMihfYSkgew0KICAgIHZhciBfYiA9IChfYSA9PT0gdm9pZCAwID8gWyJuYW1lIiwgWyJza2lsbDEiLCAic2tpbGwyIl1dIDogX2EpWzBdLCBuYW1lTUIgPSBfYiA9PT0gdm9pZCAwID8gIm5vTmFtZSIgOiBfYjsNCiAgICBjb25zb2xlLmxvZyhuYW1lTUIpOw0KfQ0KZnVuY3Rpb24gZm9vMyhfYSkgew0KICAgIHZhciBfYiA9IF9hWzBdLCBuYW1lTUEgPSBfYiA9PT0gdm9pZCAwID8gIm5vTmFtZSIgOiBfYiwgX2MgPSBfYVsxXSwgX2QgPSBfYyA9PT0gdm9pZCAwID8gWyJub1NraWxsIiwgIm5vU2tpbGwiXSA6IF9jLCBfZSA9IF9kWzBdLCBwcmltYXJ5U2tpbGxBID0gX2UgPT09IHZvaWQgMCA/ICJwcmltYXJ5IiA6IF9lLCBfZiA9IF9kWzFdLCBzZWNvbmRhcnlTa2lsbEEgPSBfZiA9PT0gdm9pZCAwID8gInNlY29uZGFyeSIgOiBfZjsNCiAgICBjb25zb2xlLmxvZyhuYW1lTUEpOw0KfQ0KZm9vMShyb2JvdEEpOw0KZm9vMShbInJvb21iYSIsIFsidmFjdXVtIiwgIm1vcHBpbmciXV0pOw0KZm9vMihyb2JvdEEpOw0KZm9vMihbInJvb21iYSIsIFsidmFjdXVtIiwgIm1vcHBpbmciXV0pOw0KZm9vMyhyb2JvdEEpOw0KZm9vMyhbInJvb21iYSIsIFsidmFjdXVtIiwgIm1vcHBpbmciXV0pOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9c291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJ0QXJyYXlCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMyLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJ0QXJyYXlCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJ0QXJyYXlCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLElBQUksTUFBTSxHQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFeEQsU0FBUyxJQUFJLENBQUMsRUFBMEU7UUFBMUUscUJBQTRDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUEsRUFBdkUsVUFBK0IsRUFBL0IsTUFBTSxtQkFBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBQTtJQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxFQUEyRDtRQUExRCxzQkFBNEIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsU0FBekMsRUFBakIsTUFBTSxtQkFBRyxRQUFRLEtBQUE7SUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBUyxJQUFJLENBQUMsRUFHb0I7UUFIbkIsVUFBaUIsRUFBakIsTUFBTSxtQkFBRyxRQUFRLEtBQUEsRUFBRSxVQUdSLEVBSFEscUJBRzlCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFBLEVBRnRCLFVBQXlCLEVBQXpCLGFBQWEsbUJBQUcsU0FBUyxLQUFBLEVBQ3pCLFVBQTZCLEVBQTdCLGVBQWUsbUJBQUcsV0FBVyxLQUFBO0lBRTdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNiLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV4QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDYixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDIn0=,ZGVjbGFyZSB2YXIgY29uc29sZTogewogICAgbG9nKG1zZzogYW55KTogdm9pZDsKfQp0eXBlIFJvYm90ID0gW3N0cmluZywgc3RyaW5nW11dOwp2YXIgcm9ib3RBOiBSb2JvdCA9IFsidHJpbW1lciIsIFsidHJpbW1pbmciLCAiZWRnaW5nIl1dOwoKZnVuY3Rpb24gZm9vMShbLCBza2lsbEEgPSBbIm5vU2tpbGwiLCAibm9Ta2lsbCJdXTogUm9ib3Q9IFsibmFtZSIsIFsic2tpbGwxIiwgInNraWxsMiJdXSkgewogICAgY29uc29sZS5sb2coc2tpbGxBKTsKfQoKZnVuY3Rpb24gZm9vMihbbmFtZU1CID0gIm5vTmFtZSJdOiBSb2JvdCA9IFsibmFtZSIsIFsic2tpbGwxIiwgInNraWxsMiJdXSkgewogICAgY29uc29sZS5sb2cobmFtZU1CKTsKfQoKZnVuY3Rpb24gZm9vMyhbbmFtZU1BID0gIm5vTmFtZSIsIFsKICAgIHByaW1hcnlTa2lsbEEgPSAicHJpbWFyeSIsCiAgICBzZWNvbmRhcnlTa2lsbEEgPSAic2Vjb25kYXJ5IgpdID0gWyJub1NraWxsIiwgIm5vU2tpbGwiXV06IFJvYm90KSB7CiAgICBjb25zb2xlLmxvZyhuYW1lTUEpOwp9Cgpmb28xKHJvYm90QSk7CmZvbzEoWyJyb29tYmEiLCBbInZhY3V1bSIsICJtb3BwaW5nIl1dKTsKCmZvbzIocm9ib3RBKTsKZm9vMihbInJvb21iYSIsIFsidmFjdXVtIiwgIm1vcHBpbmciXV0pOwoKZm9vMyhyb2JvdEEpOwpmb28zKFsicm9vbWJhIiwgWyJ2YWN1dW0iLCAibW9wcGluZyJdXSk7
{"version":3,"file":"sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.js","sourceRoot":"","sources":["sourceMapValidationDestructuringParametertArrayBindingPatternDefaultValues2.ts"],"names":[],"mappings":"AAIA,IAAI,MAAM,GAAU,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAExD,SAAS,IAAI,CAAC,EAA0E;QAA1E,qBAA4C,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAA,EAAvE,UAA+B,EAA/B,MAAM,mBAAG,CAAC,SAAS,EAAE,SAAS,CAAC,KAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CAAC,EAA2D;QAA3D,qBAA6B,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,KAAA,EAA1D,UAAiB,EAAjB,MAAM,mBAAG,QAAQ,KAAA;IAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,IAAI,CAAC,EAGoB;QAHnB,UAAiB,EAAjB,MAAM,mBAAG,QAAQ,KAAA,EAAE,UAGR,EAHQ,qBAG9B,CAAC,SAAS,EAAE,SAAS,CAAC,KAAA,EAFtB,UAAyB,EAAzB,aAAa,mBAAG,SAAS,KAAA,EACzB,UAA6B,EAA7B,eAAe,mBAAG,WAAW,KAAA;IAE7B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAExC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAExC,IAAI,CAAC,MAAM,CAAC,CAAC;AACb,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC"}
//// https://sokra.github.io/source-map-visualization#base64,dmFyIHJvYm90QSA9IFsidHJpbW1lciIsIFsidHJpbW1pbmciLCAiZWRnaW5nIl1dOw0KZnVuY3Rpb24gZm9vMShfYSkgew0KICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyBbIm5hbWUiLCBbInNraWxsMSIsICJza2lsbDIiXV0gOiBfYSwgX2MgPSBfYlsxXSwgc2tpbGxBID0gX2MgPT09IHZvaWQgMCA/IFsibm9Ta2lsbCIsICJub1NraWxsIl0gOiBfYzsNCiAgICBjb25zb2xlLmxvZyhza2lsbEEpOw0KfQ0KZnVuY3Rpb24gZm9vMihfYSkgew0KICAgIHZhciBfYiA9IF9hID09PSB2b2lkIDAgPyBbIm5hbWUiLCBbInNraWxsMSIsICJza2lsbDIiXV0gOiBfYSwgX2MgPSBfYlswXSwgbmFtZU1CID0gX2MgPT09IHZvaWQgMCA/ICJub05hbWUiIDogX2M7DQogICAgY29uc29sZS5sb2cobmFtZU1CKTsNCn0NCmZ1bmN0aW9uIGZvbzMoX2EpIHsNCiAgICB2YXIgX2IgPSBfYVswXSwgbmFtZU1BID0gX2IgPT09IHZvaWQgMCA/ICJub05hbWUiIDogX2IsIF9jID0gX2FbMV0sIF9kID0gX2MgPT09IHZvaWQgMCA/IFsibm9Ta2lsbCIsICJub1NraWxsIl0gOiBfYywgX2UgPSBfZFswXSwgcHJpbWFyeVNraWxsQSA9IF9lID09PSB2b2lkIDAgPyAicHJpbWFyeSIgOiBfZSwgX2YgPSBfZFsxXSwgc2Vjb25kYXJ5U2tpbGxBID0gX2YgPT09IHZvaWQgMCA/ICJzZWNvbmRhcnkiIDogX2Y7DQogICAgY29uc29sZS5sb2cobmFtZU1BKTsNCn0NCmZvbzEocm9ib3RBKTsNCmZvbzEoWyJyb29tYmEiLCBbInZhY3V1bSIsICJtb3BwaW5nIl1dKTsNCmZvbzIocm9ib3RBKTsNCmZvbzIoWyJyb29tYmEiLCBbInZhY3V1bSIsICJtb3BwaW5nIl1dKTsNCmZvbzMocm9ib3RBKTsNCmZvbzMoWyJyb29tYmEiLCBbInZhY3V1bSIsICJtb3BwaW5nIl1dKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNvdXJjZU1hcFZhbGlkYXRpb25EZXN0cnVjdHVyaW5nUGFyYW1ldGVydEFycmF5QmluZGluZ1BhdHRlcm5EZWZhdWx0VmFsdWVzMi5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJ0QXJyYXlCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlTWFwVmFsaWRhdGlvbkRlc3RydWN0dXJpbmdQYXJhbWV0ZXJ0QXJyYXlCaW5kaW5nUGF0dGVybkRlZmF1bHRWYWx1ZXMyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLElBQUksTUFBTSxHQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFFeEQsU0FBUyxJQUFJLENBQUMsRUFBMEU7UUFBMUUscUJBQTRDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUEsRUFBdkUsVUFBK0IsRUFBL0IsTUFBTSxtQkFBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBQTtJQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxFQUEyRDtRQUEzRCxxQkFBNkIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsS0FBQSxFQUExRCxVQUFpQixFQUFqQixNQUFNLG1CQUFHLFFBQVEsS0FBQTtJQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxFQUdvQjtRQUhuQixVQUFpQixFQUFqQixNQUFNLG1CQUFHLFFBQVEsS0FBQSxFQUFFLFVBR1IsRUFIUSxxQkFHOUIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEtBQUEsRUFGdEIsVUFBeUIsRUFBekIsYUFBYSxtQkFBRyxTQUFTLEtBQUEsRUFDekIsVUFBNkIsRUFBN0IsZUFBZSxtQkFBRyxXQUFXLEtBQUE7SUFFN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV4QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDYixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXhDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNiLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMifQ==,ZGVjbGFyZSB2YXIgY29uc29sZTogewogICAgbG9nKG1zZzogYW55KTogdm9pZDsKfQp0eXBlIFJvYm90ID0gW3N0cmluZywgc3RyaW5nW11dOwp2YXIgcm9ib3RBOiBSb2JvdCA9IFsidHJpbW1lciIsIFsidHJpbW1pbmciLCAiZWRnaW5nIl1dOwoKZnVuY3Rpb24gZm9vMShbLCBza2lsbEEgPSBbIm5vU2tpbGwiLCAibm9Ta2lsbCJdXTogUm9ib3Q9IFsibmFtZSIsIFsic2tpbGwxIiwgInNraWxsMiJdXSkgewogICAgY29uc29sZS5sb2coc2tpbGxBKTsKfQoKZnVuY3Rpb24gZm9vMihbbmFtZU1CID0gIm5vTmFtZSJdOiBSb2JvdCA9IFsibmFtZSIsIFsic2tpbGwxIiwgInNraWxsMiJdXSkgewogICAgY29uc29sZS5sb2cobmFtZU1CKTsKfQoKZnVuY3Rpb24gZm9vMyhbbmFtZU1BID0gIm5vTmFtZSIsIFsKICAgIHByaW1hcnlTa2lsbEEgPSAicHJpbWFyeSIsCiAgICBzZWNvbmRhcnlTa2lsbEEgPSAic2Vjb25kYXJ5IgpdID0gWyJub1NraWxsIiwgIm5vU2tpbGwiXV06IFJvYm90KSB7CiAgICBjb25zb2xlLmxvZyhuYW1lTUEpOwp9Cgpmb28xKHJvYm90QSk7CmZvbzEoWyJyb29tYmEiLCBbInZhY3V1bSIsICJtb3BwaW5nIl1dKTsKCmZvbzIocm9ib3RBKTsKZm9vMihbInJvb21iYSIsIFsidmFjdXVtIiwgIm1vcHBpbmciXV0pOwoKZm9vMyhyb2JvdEEpOwpmb28zKFsicm9vbWJhIiwgWyJ2YWN1dW0iLCAibW9wcGluZyJdXSk7
@@ -190,7 +190,7 @@ sourceFile:sourceMapValidationDestructuringParametertArrayBindingPatternDefaultV
3 > ^^^^
4 > ^
5 > ^^
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1->
>
>
@@ -204,58 +204,64 @@ sourceFile:sourceMapValidationDestructuringParametertArrayBindingPatternDefaultV
4 >Emitted(6, 15) Source(11, 15) + SourceIndex(0)
5 >Emitted(6, 17) Source(11, 74) + SourceIndex(0)
---
>>> var _b = (_a === void 0 ? ["name", ["skill1", "skill2"]] : _a)[0], nameMB = _b === void 0 ? "noName" : _b;
>>> var _b = _a === void 0 ? ["name", ["skill1", "skill2"]] : _a, _c = _b[0], nameMB = _c === void 0 ? "noName" : _c;
1->^^^^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^
5 > ^^
6 > ^
7 > ^^^^^^^^
8 > ^^
9 > ^^^^^^^^
10> ^
11> ^
12> ^^^^^^^^^
13> ^^
14> ^^^^^^
15> ^^^^^^^^^^^^^^^^^^^
16> ^^^^^^^^
17> ^^^^^
2 > ^^^^^^^^^^^^^^^^^^^^^
3 > ^
4 > ^^^^^^
5 > ^^
6 > ^
7 > ^^^^^^^^
8 > ^^
9 > ^^^^^^^^
10> ^
11> ^
12> ^^^^^
13> ^^
14> ^^^^^^^^^^
15> ^^
16> ^^^^^^
17> ^^^^^^^^^^^^^^^^^^^
18> ^^^^^^^^
19> ^^^^^
1->
2 > nameMB = "noName"]: Robot =
3 > [
4 > "name"
5 > ,
6 > [
7 > "skill1"
8 > ,
9 > "skill2"
10> ]
11> ]
12>
13>
14> nameMB
15> =
16> "noName"
17>
1->Emitted(7, 9) Source(11, 16) + SourceIndex(0)
2 >Emitted(7, 31) Source(11, 44) + SourceIndex(0)
3 >Emitted(7, 32) Source(11, 45) + SourceIndex(0)
4 >Emitted(7, 38) Source(11, 51) + SourceIndex(0)
5 >Emitted(7, 40) Source(11, 53) + SourceIndex(0)
6 >Emitted(7, 41) Source(11, 54) + SourceIndex(0)
7 >Emitted(7, 49) Source(11, 62) + SourceIndex(0)
8 >Emitted(7, 51) Source(11, 64) + SourceIndex(0)
9 >Emitted(7, 59) Source(11, 72) + SourceIndex(0)
10>Emitted(7, 60) Source(11, 73) + SourceIndex(0)
11>Emitted(7, 61) Source(11, 74) + SourceIndex(0)
12>Emitted(7, 70) Source(11, 33) + SourceIndex(0)
13>Emitted(7, 72) Source(11, 16) + SourceIndex(0)
14>Emitted(7, 78) Source(11, 22) + SourceIndex(0)
15>Emitted(7, 97) Source(11, 25) + SourceIndex(0)
16>Emitted(7, 105) Source(11, 33) + SourceIndex(0)
17>Emitted(7, 110) Source(11, 33) + SourceIndex(0)
2 > [nameMB = "noName"]: Robot =
3 > [
4 > "name"
5 > ,
6 > [
7 > "skill1"
8 > ,
9 > "skill2"
10> ]
11> ]
12>
13>
14> nameMB = "noName"
15>
16> nameMB
17> =
18> "noName"
19>
1->Emitted(7, 9) Source(11, 15) + SourceIndex(0)
2 >Emitted(7, 30) Source(11, 44) + SourceIndex(0)
3 >Emitted(7, 31) Source(11, 45) + SourceIndex(0)
4 >Emitted(7, 37) Source(11, 51) + SourceIndex(0)
5 >Emitted(7, 39) Source(11, 53) + SourceIndex(0)
6 >Emitted(7, 40) Source(11, 54) + SourceIndex(0)
7 >Emitted(7, 48) Source(11, 62) + SourceIndex(0)
8 >Emitted(7, 50) Source(11, 64) + SourceIndex(0)
9 >Emitted(7, 58) Source(11, 72) + SourceIndex(0)
10>Emitted(7, 59) Source(11, 73) + SourceIndex(0)
11>Emitted(7, 60) Source(11, 74) + SourceIndex(0)
12>Emitted(7, 65) Source(11, 74) + SourceIndex(0)
13>Emitted(7, 67) Source(11, 16) + SourceIndex(0)
14>Emitted(7, 77) Source(11, 33) + SourceIndex(0)
15>Emitted(7, 79) Source(11, 16) + SourceIndex(0)
16>Emitted(7, 85) Source(11, 22) + SourceIndex(0)
17>Emitted(7, 104) Source(11, 25) + SourceIndex(0)
18>Emitted(7, 112) Source(11, 33) + SourceIndex(0)
19>Emitted(7, 117) Source(11, 33) + SourceIndex(0)
---
>>> console.log(nameMB);
1 >^^^^
@@ -0,0 +1,23 @@
// @target: es5,es2015
// @noTypesAndSymbols: true
// https://github.com/microsoft/TypeScript/issues/39205
let trace: any[] = [];
let order = (n: any): any => trace.push(n);
// order(0) should evaluate before order(1) because the first element is undefined
let [{ [order(1)]: x } = order(0)] = [];
// order(0) should not evaluate because the first element is defined
let [{ [order(1)]: y } = order(0)] = [{}];
// order(0) should evaluate first (destructuring of object literal {})
// order(1) should evaluate next (initializer because property is undefined)
// order(2) should evaluate last (evaluate object binding pattern from initializer)
let { [order(0)]: { [order(2)]: z } = order(1), ...w } = {} as any;
// https://github.com/microsoft/TypeScript/issues/39181
// b = a must occur *after* 'a' has been assigned
let [{ ...a }, b = a]: any[] = [{ x: 1 }]