diff --git a/src/compiler/factory/emitHelpers.ts b/src/compiler/factory/emitHelpers.ts index 255518a2842cf..8747ba2580c63 100644 --- a/src/compiler/factory/emitHelpers.ts +++ b/src/compiler/factory/emitHelpers.ts @@ -1024,6 +1024,8 @@ const setFunctionNameHelper: UnscopedEmitHelper = { text: ` var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); };`, }; diff --git a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.js b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.js index eed9549b53df8..2eb4fd513f356 100644 --- a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.js +++ b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.js @@ -200,6 +200,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) { }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } diff --git a/tests/baselines/reference/capturedParametersInInitializers2.js b/tests/baselines/reference/capturedParametersInInitializers2.js index 5289fa14092ac..584919c9fc1ec 100644 --- a/tests/baselines/reference/capturedParametersInInitializers2.js +++ b/tests/baselines/reference/capturedParametersInInitializers2.js @@ -19,6 +19,8 @@ function foo2(y = class {[x] = x}, x = 1) { //// [capturedParametersInInitializers2.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; function foo(y, x, z) { diff --git a/tests/baselines/reference/classStaticBlock18(target=es2015).js b/tests/baselines/reference/classStaticBlock18(target=es2015).js index a594c733f7082..224cc9a0d5125 100644 --- a/tests/baselines/reference/classStaticBlock18(target=es2015).js +++ b/tests/baselines/reference/classStaticBlock18(target=es2015).js @@ -19,6 +19,8 @@ function foo () { //// [classStaticBlock18.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; function foo() { diff --git a/tests/baselines/reference/classStaticBlock18(target=es5).js b/tests/baselines/reference/classStaticBlock18(target=es5).js index f9c310c90de12..a9b413c4ba1ed 100644 --- a/tests/baselines/reference/classStaticBlock18(target=es5).js +++ b/tests/baselines/reference/classStaticBlock18(target=es5).js @@ -19,6 +19,8 @@ function foo () { //// [classStaticBlock18.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; function foo() { diff --git a/tests/baselines/reference/classWithStaticFieldInParameterInitializer(target=es2015).js b/tests/baselines/reference/classWithStaticFieldInParameterInitializer(target=es2015).js index e3adc92a100e4..367ce50135ea3 100644 --- a/tests/baselines/reference/classWithStaticFieldInParameterInitializer(target=es2015).js +++ b/tests/baselines/reference/classWithStaticFieldInParameterInitializer(target=es2015).js @@ -7,6 +7,8 @@ //// [classWithStaticFieldInParameterInitializer.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; // https://github.com/microsoft/TypeScript/issues/36295 diff --git a/tests/baselines/reference/classWithStaticFieldInParameterInitializer(target=es5).js b/tests/baselines/reference/classWithStaticFieldInParameterInitializer(target=es5).js index af41d155adb5d..66ec4fc7f7ce7 100644 --- a/tests/baselines/reference/classWithStaticFieldInParameterInitializer(target=es5).js +++ b/tests/baselines/reference/classWithStaticFieldInParameterInitializer(target=es5).js @@ -7,6 +7,8 @@ //// [classWithStaticFieldInParameterInitializer.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; // https://github.com/microsoft/TypeScript/issues/36295 diff --git a/tests/baselines/reference/decoratorOnClass8.es6.js b/tests/baselines/reference/decoratorOnClass8.es6.js index 629737f9910f3..c28b7abab9883 100644 --- a/tests/baselines/reference/decoratorOnClass8.es6.js +++ b/tests/baselines/reference/decoratorOnClass8.es6.js @@ -17,6 +17,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var _a; diff --git a/tests/baselines/reference/emitClassExpressionInDeclarationFile2.js b/tests/baselines/reference/emitClassExpressionInDeclarationFile2.js index 7448d7496af59..3612b5f16d5c1 100644 --- a/tests/baselines/reference/emitClassExpressionInDeclarationFile2.js +++ b/tests/baselines/reference/emitClassExpressionInDeclarationFile2.js @@ -50,6 +50,8 @@ var __extends = (this && this.__extends) || (function () { })(); var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var _a; diff --git a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).js b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).js index c5df07be4f1e6..841ecba45b6e5 100644 --- a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).js +++ b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).js @@ -85,6 +85,8 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { diff --git a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).js.map b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).js.map index 2d62dd58cc05b..97502c0e0feb3 100644 --- a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).js.map +++ b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).js.map @@ -1,6 +1,6 @@ //// [esDecorators-classDeclaration-sourceMap.js.map] -{"version":3,"file":"esDecorators-classDeclaration-sourceMap.js","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIM,CAAC;;4BAFN,GAAG,EACH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAIA,MAAM,KAAI,CAAC;QAIX,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;QAIrB,IAAI,CAAC,CAAC,KAAa,IAAI,CAAC;QAQxB,IAAS,CAAC,yEAAK;QAAf,IAAS,CAAC,8EAAK;;YAJf,MAAC,IAfC,mDAAC,2CAeC,CAAC,GAAC;YAIG,2HAAI,CAAC,IAAC;;;;;;;;;;;;;8BAlBd,GAAG,EACH,GAAG;6BAGH,GAAG,EACH,GAAG;6BAGH,GAAG,EACH,GAAG;yBAGH,GAAG,EACH,GAAG;yBAGH,GAAG,EACH,GAAG;6CAGH,GAAG,EACH,GAAG;4CAGH,GAAG,EACH,GAAG;4CAGH,GAAG,EACH,GAAG;wCAGH,GAAG,EACH,GAAG;wCAGH,GAAG,EACH,GAAG;QAfJ,+DAAA,yBAAA,cAAkB,CAAC,YAAA,uSAAA;QAInB,8DAAA,uBAAA,cAAkB,OAAO,CAAC,CAAC,CAAC,CAAC,cAAA,4RAAA;QAI7B,8DAAA,uBAAA,UAAc,KAAa,IAAI,CAAC,cAAA,iTAAA;QAQhC,0DAAA,uBAAA,kGAAuB,cAAA,EAAvB,uBAAA,uGAAuB,cAAA,wZAAA;QApCvB,2KAAA,MAAM,6DAAK;QAIX,gKAAI,CAAC,6DAAgB;QAIrB,2KAAI,CAAC,wEAAmB;QAQxB,8JAAS,CAAC,6BAAD,CAAC,6EAAK;QAgBf,kaAAc;QApBd,qJAAA,CAAC,6BAAD,CAAC,6EAAK;QAfV,6KAwCC;;;;IALU,iBAnCL,uDAAC,gEAmCS,CAAC,IAAJ,CAAK;IAIE,oKAAK,CAAC,IAAJ,CAAK;;;QAvCrB,uDAAC"} -//// https://sokra.github.io/source-map-visualization#base64,dmFyIF9fcnVuSW5pdGlhbGl6ZXJzID0gKHRoaXMgJiYgdGhpcy5fX3J1bkluaXRpYWxpemVycykgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHsNCiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7DQogICAgfQ0KICAgIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwOw0KfTsNCnZhciBfX2VzRGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZXNEZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7DQogICAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTsgcmV0dXJuIGY7IH0NCiAgICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSAiZ2V0dGVyIiA/ICJnZXQiIDoga2luZCA9PT0gInNldHRlciIgPyAic2V0IiA6ICJ2YWx1ZSI7DQogICAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJblsic3RhdGljIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsOw0KICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pOw0KICAgIHZhciBfLCBkb25lID0gZmFsc2U7DQogICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSAiYWNjZXNzIiA/IHt9IDogY29udGV4dEluW3BdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTsNCiAgICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07DQogICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gImFjY2Vzc29yIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTsNCiAgICAgICAgaWYgKGtpbmQgPT09ICJhY2Nlc3NvciIpIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09ICJvYmplY3QiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsNCiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87DQogICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfOw0KICAgICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHsNCiAgICAgICAgICAgIGlmIChraW5kID09PSAiZmllbGQiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7DQogICAgZG9uZSA9IHRydWU7DQp9Ow0KdmFyIF9fc2V0RnVuY3Rpb25OYW1lID0gKHRoaXMgJiYgdGhpcy5fX3NldEZ1bmN0aW9uTmFtZSkgfHwgZnVuY3Rpb24gKGYsIG5hbWUsIHByZWZpeCkgew0KICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gInN5bWJvbCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gIlsiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCAiXSIpIDogIiI7DQogICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCAibmFtZSIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gIiIuY29uY2F0KHByZWZpeCwgIiAiLCBuYW1lKSA6IG5hbWUgfSk7DQp9Ow0KdmFyIF9fY2xhc3NQcml2YXRlRmllbGRHZXQgPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRHZXQpIHx8IGZ1bmN0aW9uIChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHsNCiAgICBpZiAoa2luZCA9PT0gImEiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTsNCiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpOw0KICAgIHJldHVybiBraW5kID09PSAibSIgPyBmIDoga2luZCA9PT0gImEiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTsNCn07DQp2YXIgX19jbGFzc1ByaXZhdGVGaWVsZFNldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZFNldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHsNCiAgICBpZiAoa2luZCA9PT0gIm0iKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTsNCiAgICBpZiAoa2luZCA9PT0gImEiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTsNCiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7DQogICAgcmV0dXJuIChraW5kID09PSAiYSIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlOw0KfTsNCnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4gPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRJbikgfHwgZnVuY3Rpb24oc3RhdGUsIHJlY2VpdmVyKSB7DQogICAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09ICJvYmplY3QiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gImZ1bmN0aW9uIikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7DQogICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gImZ1bmN0aW9uIiA/IHJlY2VpdmVyID09PSBzdGF0ZSA6IHN0YXRlLmhhcyhyZWNlaXZlcik7DQp9Ow0KbGV0IEMgPSAoKCkgPT4gew0KICAgIHZhciBfQ19tZXRob2RfZ2V0LCBfQ194X2dldCwgX0NfeF9zZXQsIF9DX3ksIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSwgX0Nfel9nZXQsIF9DX3pfc2V0LCBfQ196XzFfYWNjZXNzb3Jfc3RvcmFnZTsNCiAgICBsZXQgX2NsYXNzRGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgbGV0IF9jbGFzc0Rlc2NyaXB0b3I7DQogICAgbGV0IF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9jbGFzc1RoaXM7DQogICAgbGV0IF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvcjsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZXNjcmlwdG9yOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3NldF94X2Rlc2NyaXB0b3I7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfeV9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZGVzY3JpcHRvcjsNCiAgICBsZXQgX21ldGhvZF9kZWNvcmF0b3JzOw0KICAgIGxldCBfZ2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3NldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF95X2RlY29yYXRvcnM7DQogICAgbGV0IF95X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfeV9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfel9kZWNvcmF0b3JzOw0KICAgIGxldCBfel9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3pfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICB2YXIgQyA9IF9jbGFzc1RoaXMgPSBjbGFzcyB7DQogICAgICAgIG1ldGhvZCgpIHsgfQ0KICAgICAgICBnZXQgeCgpIHsgcmV0dXJuIDE7IH0NCiAgICAgICAgc2V0IHgodmFsdWUpIHsgfQ0KICAgICAgICBnZXQgeigpIHsgcmV0dXJuIF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX0Nfel8xX2FjY2Vzc29yX3N0b3JhZ2UsICJmIik7IH0NCiAgICAgICAgc2V0IHoodmFsdWUpIHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfQ196XzFfYWNjZXNzb3Jfc3RvcmFnZSwgdmFsdWUsICJmIik7IH0NCiAgICAgICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgICAgICB0aGlzLnkgPSAoX19ydW5Jbml0aWFsaXplcnModGhpcywgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpLCBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfeV9pbml0aWFsaXplcnMsIDEpKTsNCiAgICAgICAgICAgIF9DX3pfMV9hY2Nlc3Nvcl9zdG9yYWdlLnNldCh0aGlzLCAoX19ydW5Jbml0aWFsaXplcnModGhpcywgX3lfZXh0cmFJbml0aWFsaXplcnMpLCBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfel9pbml0aWFsaXplcnMsIDEpKSk7DQogICAgICAgICAgICBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIH0NCiAgICB9Ow0KICAgIF9DX3pfMV9hY2Nlc3Nvcl9zdG9yYWdlID0gbmV3IFdlYWtNYXAoKTsNCiAgICBfQ19tZXRob2RfZ2V0ID0gZnVuY3Rpb24gX0NfbWV0aG9kX2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvci52YWx1ZTsgfTsNCiAgICBfQ194X2dldCA9IGZ1bmN0aW9uIF9DX3hfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH07DQogICAgX0NfeF9zZXQgPSBmdW5jdGlvbiBfQ194X3NldCh2YWx1ZSkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX3NldF94X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9Ow0KICAgIF9DX3pfZ2V0ID0gZnVuY3Rpb24gX0Nfel9nZXQoKSB7IHJldHVybiBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yLmdldC5jYWxsKHRoaXMpOyB9Ow0KICAgIF9DX3pfc2V0ID0gZnVuY3Rpb24gX0Nfel9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9Ow0KICAgIF9fc2V0RnVuY3Rpb25OYW1lKF9jbGFzc1RoaXMsICJDIik7DQogICAgKCgpID0+IHsNCiAgICAgICAgY29uc3QgX21ldGFkYXRhID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wubWV0YWRhdGEgPyBPYmplY3QuY3JlYXRlKG51bGwpIDogdm9pZCAwOw0KICAgICAgICBfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zZXRfeF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yID0geyB2YWx1ZTogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyB9LCAiI21ldGhvZCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9ycywgeyBraW5kOiAibWV0aG9kIiwgbmFtZTogIiNtZXRob2QiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0NfbWV0aG9kX2dldCkgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IgPSB7IGdldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfSwgIiN4IiwgImdldCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJnZXR0ZXIiLCBuYW1lOiAiI3giLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0NfeF9nZXQpIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yID0geyBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyB9LCAiI3giLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ194X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfZGVzY3JpcHRvciA9IHsgZ2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAoKSB7IHJldHVybiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9jbGFzc1RoaXMsIF9jbGFzc1RoaXMsICJmIiwgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlKTsgfSwgIiN6IiwgImdldCIpLCBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KF9jbGFzc1RoaXMsIF9jbGFzc1RoaXMsIHZhbHVlLCAiZiIsIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSk7IH0sICIjeiIsICJzZXQiKSB9LCBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJhY2Nlc3NvciIsIG5hbWU6ICIjeiIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImEiLCBfQ196X2dldCksIHNldDogKG9iaiwgdmFsdWUpID0+IHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldChvYmosIF9jbGFzc1RoaXMsIHZhbHVlLCAiYSIsIF9DX3pfc2V0KTsgfSB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIF9zdGF0aWNfcHJpdmF0ZV96X2luaXRpYWxpemVycywgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgbnVsbCwgX21ldGhvZF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJtZXRob2QiLCBuYW1lOiAibWV0aG9kIiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAibWV0aG9kIiBpbiBvYmosIGdldDogb2JqID0+IG9iai5tZXRob2QgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShfY2xhc3NUaGlzLCBudWxsLCBfZ2V0X3hfZGVjb3JhdG9ycywgeyBraW5kOiAiZ2V0dGVyIiwgbmFtZTogIngiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ4IiBpbiBvYmosIGdldDogb2JqID0+IG9iai54IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgbnVsbCwgX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICJ4Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieCIgaW4gb2JqLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai54ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShfY2xhc3NUaGlzLCBudWxsLCBfel9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJhY2Nlc3NvciIsIG5hbWU6ICJ6Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieiIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueiwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueiA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3pfaW5pdGlhbGl6ZXJzLCBfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICIjeSIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImYiLCBfQ195KSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJmIiwgX0NfeSk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfeV9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKG51bGwsIG51bGwsIF95X2RlY29yYXRvcnMsIHsga2luZDogImZpZWxkIiwgbmFtZTogInkiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ5IiBpbiBvYmosIGdldDogb2JqID0+IG9iai55LCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai55ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfeV9pbml0aWFsaXplcnMsIF95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKG51bGwsIF9jbGFzc0Rlc2NyaXB0b3IgPSB7IHZhbHVlOiBfY2xhc3NUaGlzIH0sIF9jbGFzc0RlY29yYXRvcnMsIHsga2luZDogImNsYXNzIiwgbmFtZTogX2NsYXNzVGhpcy5uYW1lLCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgQyA9IF9jbGFzc1RoaXMgPSBfY2xhc3NEZXNjcmlwdG9yLnZhbHVlOw0KICAgICAgICBpZiAoX21ldGFkYXRhKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoX2NsYXNzVGhpcywgU3ltYm9sLm1ldGFkYXRhLCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBfbWV0YWRhdGEgfSk7DQogICAgfSkoKTsNCiAgICBfQ195ID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2luaXRpYWxpemVycywgMSkpIH07DQogICAgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAoKCkgPT4gew0KICAgICAgICBfX3J1bkluaXRpYWxpemVycyhfY2xhc3NUaGlzLCBfc3RhdGljX3ByaXZhdGVfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICB9KSgpOw0KICAgIHJldHVybiBDID0gX2NsYXNzVGhpczsNCn0pKCk7DQovLyMgc291cmNlTWFwcGluZ1VSTD1lc0RlY29yYXRvcnMtY2xhc3NEZWNsYXJhdGlvbi1zb3VyY2VNYXAuanMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSU0sQ0FBQzs7NEJBRk4sR0FBRyxFQUNILEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBSUEsTUFBTSxLQUFJLENBQUM7UUFJWCxJQUFJLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFJckIsSUFBSSxDQUFDLENBQUMsS0FBYSxJQUFJLENBQUM7UUFReEIsSUFBUyxDQUFDLHlFQUFLO1FBQWYsSUFBUyxDQUFDLDhFQUFLOztZQUpmLE1BQUMsSUFmQyxtREFBQywyQ0FlQyxDQUFDLEdBQUM7WUFJRywySEFBSSxDQUFDLElBQUM7Ozs7Ozs7Ozs7Ozs7OEJBbEJkLEdBQUcsRUFDSCxHQUFHOzZCQUdILEdBQUcsRUFDSCxHQUFHOzZCQUdILEdBQUcsRUFDSCxHQUFHO3lCQUdILEdBQUcsRUFDSCxHQUFHO3lCQUdILEdBQUcsRUFDSCxHQUFHOzZDQUdILEdBQUcsRUFDSCxHQUFHOzRDQUdILEdBQUcsRUFDSCxHQUFHOzRDQUdILEdBQUcsRUFDSCxHQUFHO3dDQUdILEdBQUcsRUFDSCxHQUFHO3dDQUdILEdBQUcsRUFDSCxHQUFHO1FBZkosK0RBQUEseUJBQUEsY0FBa0IsQ0FBQyxZQUFBLHVTQUFBO1FBSW5CLDhEQUFBLHVCQUFBLGNBQWtCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFBLDRSQUFBO1FBSTdCLDhEQUFBLHVCQUFBLFVBQWMsS0FBYSxJQUFJLENBQUMsY0FBQSxpVEFBQTtRQVFoQywwREFBQSx1QkFBQSxrR0FBdUIsY0FBQSxFQUF2Qix1QkFBQSx1R0FBdUIsY0FBQSx3WkFBQTtRQXBDdkIsMktBQUEsTUFBTSw2REFBSztRQUlYLGdLQUFJLENBQUMsNkRBQWdCO1FBSXJCLDJLQUFJLENBQUMsd0VBQW1CO1FBUXhCLDhKQUFTLENBQUMsNkJBQUQsQ0FBQyw2RUFBSztRQWdCZixrYUFBYztRQXBCZCxxSkFBQSxDQUFDLDZCQUFELENBQUMsNkVBQUs7UUFmViw2S0F3Q0M7Ozs7SUFMVSxpQkFuQ0wsdURBQUMsZ0VBbUNTLENBQUMsSUFBSixDQUFLO0lBSUUsb0tBQUssQ0FBQyxJQUFKLENBQUs7OztRQXZDckIsdURBQUMifQ==,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg== +{"version":3,"file":"esDecorators-classDeclaration-sourceMap.js","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIM,CAAC;;4BAFN,GAAG,EACH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAIA,MAAM,KAAI,CAAC;QAIX,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;QAIrB,IAAI,CAAC,CAAC,KAAa,IAAI,CAAC;QAQxB,IAAS,CAAC,yEAAK;QAAf,IAAS,CAAC,8EAAK;;YAJf,MAAC,IAfC,mDAAC,2CAeC,CAAC,GAAC;YAIG,2HAAI,CAAC,IAAC;;;;;;;;;;;;;8BAlBd,GAAG,EACH,GAAG;6BAGH,GAAG,EACH,GAAG;6BAGH,GAAG,EACH,GAAG;yBAGH,GAAG,EACH,GAAG;yBAGH,GAAG,EACH,GAAG;6CAGH,GAAG,EACH,GAAG;4CAGH,GAAG,EACH,GAAG;4CAGH,GAAG,EACH,GAAG;wCAGH,GAAG,EACH,GAAG;wCAGH,GAAG,EACH,GAAG;QAfJ,+DAAA,yBAAA,cAAkB,CAAC,YAAA,uSAAA;QAInB,8DAAA,uBAAA,cAAkB,OAAO,CAAC,CAAC,CAAC,CAAC,cAAA,4RAAA;QAI7B,8DAAA,uBAAA,UAAc,KAAa,IAAI,CAAC,cAAA,iTAAA;QAQhC,0DAAA,uBAAA,kGAAuB,cAAA,EAAvB,uBAAA,uGAAuB,cAAA,wZAAA;QApCvB,2KAAA,MAAM,6DAAK;QAIX,gKAAI,CAAC,6DAAgB;QAIrB,2KAAI,CAAC,wEAAmB;QAQxB,8JAAS,CAAC,6BAAD,CAAC,6EAAK;QAgBf,kaAAc;QApBd,qJAAA,CAAC,6BAAD,CAAC,6EAAK;QAfV,6KAwCC;;;;IALU,iBAnCL,uDAAC,gEAmCS,CAAC,IAAJ,CAAK;IAIE,oKAAK,CAAC,IAAJ,CAAK;;;QAvCrB,uDAAC"} +//// https://sokra.github.io/source-map-visualization#base64,dmFyIF9fcnVuSW5pdGlhbGl6ZXJzID0gKHRoaXMgJiYgdGhpcy5fX3J1bkluaXRpYWxpemVycykgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHsNCiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7DQogICAgfQ0KICAgIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwOw0KfTsNCnZhciBfX2VzRGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZXNEZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7DQogICAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTsgcmV0dXJuIGY7IH0NCiAgICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSAiZ2V0dGVyIiA/ICJnZXQiIDoga2luZCA9PT0gInNldHRlciIgPyAic2V0IiA6ICJ2YWx1ZSI7DQogICAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJblsic3RhdGljIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsOw0KICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pOw0KICAgIHZhciBfLCBkb25lID0gZmFsc2U7DQogICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSAiYWNjZXNzIiA/IHt9IDogY29udGV4dEluW3BdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTsNCiAgICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07DQogICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gImFjY2Vzc29yIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTsNCiAgICAgICAgaWYgKGtpbmQgPT09ICJhY2Nlc3NvciIpIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09ICJvYmplY3QiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsNCiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87DQogICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfOw0KICAgICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHsNCiAgICAgICAgICAgIGlmIChraW5kID09PSAiZmllbGQiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7DQogICAgZG9uZSA9IHRydWU7DQp9Ow0KdmFyIF9fc2V0RnVuY3Rpb25OYW1lID0gKHRoaXMgJiYgdGhpcy5fX3NldEZ1bmN0aW9uTmFtZSkgfHwgZnVuY3Rpb24gKGYsIG5hbWUsIHByZWZpeCkgew0KICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gInN5bWJvbCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gIlsiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCAiXSIpIDogIiI7DQogICAgdmFyIGQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGYsICJuYW1lIik7DQogICAgaWYgKGQgJiYgZC53cml0YWJsZSAhPT0gZmFsc2UpIHJldHVybiBmOw0KICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgIm5hbWUiLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHByZWZpeCA/ICIiLmNvbmNhdChwcmVmaXgsICIgIiwgbmFtZSkgOiBuYW1lIH0pOw0KfTsNCnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCBraW5kLCBmKSB7DQogICAgaWYgKGtpbmQgPT09ICJhIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgZ2V0dGVyIik7DQogICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gImZ1bmN0aW9uIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgcmVhZCBwcml2YXRlIG1lbWJlciBmcm9tIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXQiKTsNCiAgICByZXR1cm4ga2luZCA9PT0gIm0iID8gZiA6IGtpbmQgPT09ICJhIiA/IGYuY2FsbChyZWNlaXZlcikgOiBmID8gZi52YWx1ZSA6IHN0YXRlLmdldChyZWNlaXZlcik7DQp9Ow0KdmFyIF9fY2xhc3NQcml2YXRlRmllbGRTZXQgPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRTZXQpIHx8IGZ1bmN0aW9uIChyZWNlaXZlciwgc3RhdGUsIHZhbHVlLCBraW5kLCBmKSB7DQogICAgaWYgKGtpbmQgPT09ICJtIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBtZXRob2QgaXMgbm90IHdyaXRhYmxlIik7DQogICAgaWYgKGtpbmQgPT09ICJhIiAmJiAhZikgdGhyb3cgbmV3IFR5cGVFcnJvcigiUHJpdmF0ZSBhY2Nlc3NvciB3YXMgZGVmaW5lZCB3aXRob3V0IGEgc2V0dGVyIik7DQogICAgaWYgKHR5cGVvZiBzdGF0ZSA9PT0gImZ1bmN0aW9uIiA/IHJlY2VpdmVyICE9PSBzdGF0ZSB8fCAhZiA6ICFzdGF0ZS5oYXMocmVjZWl2ZXIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3Qgd3JpdGUgcHJpdmF0ZSBtZW1iZXIgdG8gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpOw0KICAgIHJldHVybiAoa2luZCA9PT0gImEiID8gZi5jYWxsKHJlY2VpdmVyLCB2YWx1ZSkgOiBmID8gZi52YWx1ZSA9IHZhbHVlIDogc3RhdGUuc2V0KHJlY2VpdmVyLCB2YWx1ZSkpLCB2YWx1ZTsNCn07DQp2YXIgX19jbGFzc1ByaXZhdGVGaWVsZEluID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkSW4pIHx8IGZ1bmN0aW9uKHN0YXRlLCByZWNlaXZlcikgew0KICAgIGlmIChyZWNlaXZlciA9PT0gbnVsbCB8fCAodHlwZW9mIHJlY2VpdmVyICE9PSAib2JqZWN0IiAmJiB0eXBlb2YgcmVjZWl2ZXIgIT09ICJmdW5jdGlvbiIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgdXNlICdpbicgb3BlcmF0b3Igb24gbm9uLW9iamVjdCIpOw0KICAgIHJldHVybiB0eXBlb2Ygc3RhdGUgPT09ICJmdW5jdGlvbiIgPyByZWNlaXZlciA9PT0gc3RhdGUgOiBzdGF0ZS5oYXMocmVjZWl2ZXIpOw0KfTsNCmxldCBDID0gKCgpID0+IHsNCiAgICB2YXIgX0NfbWV0aG9kX2dldCwgX0NfeF9nZXQsIF9DX3hfc2V0LCBfQ195LCBfQ196X2FjY2Vzc29yX3N0b3JhZ2UsIF9DX3pfZ2V0LCBfQ196X3NldCwgX0Nfel8xX2FjY2Vzc29yX3N0b3JhZ2U7DQogICAgbGV0IF9jbGFzc0RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgIGxldCBfY2xhc3NEZXNjcmlwdG9yOw0KICAgIGxldCBfY2xhc3NFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfY2xhc3NUaGlzOw0KICAgIGxldCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2Rlc2NyaXB0b3I7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVzY3JpcHRvcjsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3NldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfeV9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3lfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfaW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV96X2V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3I7DQogICAgbGV0IF9tZXRob2RfZGVjb3JhdG9yczsNCiAgICBsZXQgX2dldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF9zZXRfeF9kZWNvcmF0b3JzOw0KICAgIGxldCBfeV9kZWNvcmF0b3JzOw0KICAgIGxldCBfeV9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3lfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3pfZGVjb3JhdG9yczsNCiAgICBsZXQgX3pfaW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF96X2V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgdmFyIEMgPSBfY2xhc3NUaGlzID0gY2xhc3Mgew0KICAgICAgICBtZXRob2QoKSB7IH0NCiAgICAgICAgZ2V0IHgoKSB7IHJldHVybiAxOyB9DQogICAgICAgIHNldCB4KHZhbHVlKSB7IH0NCiAgICAgICAgZ2V0IHooKSB7IHJldHVybiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KHRoaXMsIF9DX3pfMV9hY2Nlc3Nvcl9zdG9yYWdlLCAiZiIpOyB9DQogICAgICAgIHNldCB6KHZhbHVlKSB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX0Nfel8xX2FjY2Vzc29yX3N0b3JhZ2UsIHZhbHVlLCAiZiIpOyB9DQogICAgICAgIGNvbnN0cnVjdG9yKCkgew0KICAgICAgICAgICAgdGhpcy55ID0gKF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnModGhpcywgX3lfaW5pdGlhbGl6ZXJzLCAxKSk7DQogICAgICAgICAgICBfQ196XzFfYWNjZXNzb3Jfc3RvcmFnZS5zZXQodGhpcywgKF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF95X2V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnModGhpcywgX3pfaW5pdGlhbGl6ZXJzLCAxKSkpOw0KICAgICAgICAgICAgX19ydW5Jbml0aWFsaXplcnModGhpcywgX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICB9DQogICAgfTsNCiAgICBfQ196XzFfYWNjZXNzb3Jfc3RvcmFnZSA9IG5ldyBXZWFrTWFwKCk7DQogICAgX0NfbWV0aG9kX2dldCA9IGZ1bmN0aW9uIF9DX21ldGhvZF9nZXQoKSB7IHJldHVybiBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2Rlc2NyaXB0b3IudmFsdWU7IH07DQogICAgX0NfeF9nZXQgPSBmdW5jdGlvbiBfQ194X2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZXNjcmlwdG9yLmdldC5jYWxsKHRoaXMpOyB9Ow0KICAgIF9DX3hfc2V0ID0gZnVuY3Rpb24gX0NfeF9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yLnNldC5jYWxsKHRoaXMsIHZhbHVlKTsgfTsNCiAgICBfQ196X2dldCA9IGZ1bmN0aW9uIF9DX3pfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX3pfZGVzY3JpcHRvci5nZXQuY2FsbCh0aGlzKTsgfTsNCiAgICBfQ196X3NldCA9IGZ1bmN0aW9uIF9DX3pfc2V0KHZhbHVlKSB7IHJldHVybiBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yLnNldC5jYWxsKHRoaXMsIHZhbHVlKTsgfTsNCiAgICBfX3NldEZ1bmN0aW9uTmFtZShfY2xhc3NUaGlzLCAiQyIpOw0KICAgICgoKSA9PiB7DQogICAgICAgIGNvbnN0IF9tZXRhZGF0YSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLm1ldGFkYXRhID8gT2JqZWN0LmNyZWF0ZShudWxsKSA6IHZvaWQgMDsNCiAgICAgICAgX21ldGhvZF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX2dldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF95X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfel9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgIF9zdGF0aWNfcHJpdmF0ZV95X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgX19lc0RlY29yYXRlKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvciA9IHsgdmFsdWU6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICgpIHsgfSwgIiNtZXRob2QiKSB9LCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnMsIHsga2luZDogIm1ldGhvZCIsIG5hbWU6ICIjbWV0aG9kIiwgc3RhdGljOiB0cnVlLCBwcml2YXRlOiB0cnVlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEluKF9jbGFzc1RoaXMsIG9iaiksIGdldDogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRHZXQob2JqLCBfY2xhc3NUaGlzLCAiYSIsIF9DX21ldGhvZF9nZXQpIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZXNjcmlwdG9yID0geyBnZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0sICIjeCIsICJnZXQiKSB9LCBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9ycywgeyBraW5kOiAiZ2V0dGVyIiwgbmFtZTogIiN4Iiwgc3RhdGljOiB0cnVlLCBwcml2YXRlOiB0cnVlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEluKF9jbGFzc1RoaXMsIG9iaiksIGdldDogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRHZXQob2JqLCBfY2xhc3NUaGlzLCAiYSIsIF9DX3hfZ2V0KSB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShfY2xhc3NUaGlzLCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVzY3JpcHRvciA9IHsgc2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAodmFsdWUpIHsgfSwgIiN4IiwgInNldCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJzZXR0ZXIiLCBuYW1lOiAiI3giLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJhIiwgX0NfeF9zZXQpOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3IgPSB7IGdldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChfY2xhc3NUaGlzLCBfY2xhc3NUaGlzLCAiZiIsIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSk7IH0sICIjeiIsICJnZXQiKSwgc2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAodmFsdWUpIHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldChfY2xhc3NUaGlzLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImYiLCBfQ196X2FjY2Vzc29yX3N0b3JhZ2UpOyB9LCAiI3oiLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3pfZGVjb3JhdG9ycywgeyBraW5kOiAiYWNjZXNzb3IiLCBuYW1lOiAiI3oiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0Nfel9nZXQpLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ196X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfel9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKF9jbGFzc1RoaXMsIG51bGwsIF9tZXRob2RfZGVjb3JhdG9ycywgeyBraW5kOiAibWV0aG9kIiwgbmFtZTogIm1ldGhvZCIsIHN0YXRpYzogZmFsc2UsIHByaXZhdGU6IGZhbHNlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gIm1ldGhvZCIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoubWV0aG9kIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgbnVsbCwgX2dldF94X2RlY29yYXRvcnMsIHsga2luZDogImdldHRlciIsIG5hbWU6ICJ4Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieCIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueCB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgX19lc0RlY29yYXRlKF9jbGFzc1RoaXMsIG51bGwsIF9zZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJzZXR0ZXIiLCBuYW1lOiAieCIsIHN0YXRpYzogZmFsc2UsIHByaXZhdGU6IGZhbHNlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gIngiIGluIG9iaiwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueCA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUoX2NsYXNzVGhpcywgbnVsbCwgX3pfZGVjb3JhdG9ycywgeyBraW5kOiAiYWNjZXNzb3IiLCBuYW1lOiAieiIsIHN0YXRpYzogZmFsc2UsIHByaXZhdGU6IGZhbHNlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gInoiIGluIG9iaiwgZ2V0OiBvYmogPT4gb2JqLnosIHNldDogKG9iaiwgdmFsdWUpID0+IHsgb2JqLnogPSB2YWx1ZTsgfSB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIF96X2luaXRpYWxpemVycywgX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX2VzRGVjb3JhdGUobnVsbCwgbnVsbCwgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9ycywgeyBraW5kOiAiZmllbGQiLCBuYW1lOiAiI3kiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJmIiwgX0NfeSksIHNldDogKG9iaiwgdmFsdWUpID0+IHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldChvYmosIF9jbGFzc1RoaXMsIHZhbHVlLCAiZiIsIF9DX3kpOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3N0YXRpY19wcml2YXRlX3lfaW5pdGlhbGl6ZXJzLCBfc3RhdGljX3ByaXZhdGVfeV9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICJ5Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieSIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueSA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3lfaW5pdGlhbGl6ZXJzLCBfeV9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBfY2xhc3NEZXNjcmlwdG9yID0geyB2YWx1ZTogX2NsYXNzVGhpcyB9LCBfY2xhc3NEZWNvcmF0b3JzLCB7IGtpbmQ6ICJjbGFzcyIsIG5hbWU6IF9jbGFzc1RoaXMubmFtZSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfY2xhc3NFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIEMgPSBfY2xhc3NUaGlzID0gX2NsYXNzRGVzY3JpcHRvci52YWx1ZTsNCiAgICAgICAgaWYgKF9tZXRhZGF0YSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9jbGFzc1RoaXMsIFN5bWJvbC5tZXRhZGF0YSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogX21ldGFkYXRhIH0pOw0KICAgIH0pKCk7DQogICAgX0NfeSA9IHsgdmFsdWU6IChfX3J1bkluaXRpYWxpemVycyhfY2xhc3NUaGlzLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpLCBfX3J1bkluaXRpYWxpemVycyhfY2xhc3NUaGlzLCBfc3RhdGljX3ByaXZhdGVfeV9pbml0aWFsaXplcnMsIDEpKSB9Ow0KICAgIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSA9IHsgdmFsdWU6IChfX3J1bkluaXRpYWxpemVycyhfY2xhc3NUaGlzLCBfc3RhdGljX3ByaXZhdGVfeV9leHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV96X2luaXRpYWxpemVycywgMSkpIH07DQogICAgKCgpID0+IHsNCiAgICAgICAgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICBfX3J1bkluaXRpYWxpemVycyhfY2xhc3NUaGlzLCBfY2xhc3NFeHRyYUluaXRpYWxpemVycyk7DQogICAgfSkoKTsNCiAgICByZXR1cm4gQyA9IF9jbGFzc1RoaXM7DQp9KSgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFJTSxDQUFDOzs0QkFGTixHQUFHLEVBQ0gsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFJQSxNQUFNLEtBQUksQ0FBQztRQUlYLElBQUksQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUlyQixJQUFJLENBQUMsQ0FBQyxLQUFhLElBQUksQ0FBQztRQVF4QixJQUFTLENBQUMseUVBQUs7UUFBZixJQUFTLENBQUMsOEVBQUs7O1lBSmYsTUFBQyxJQWZDLG1EQUFDLDJDQWVDLENBQUMsR0FBQztZQUlHLDJIQUFJLENBQUMsSUFBQzs7Ozs7Ozs7Ozs7Ozs4QkFsQmQsR0FBRyxFQUNILEdBQUc7NkJBR0gsR0FBRyxFQUNILEdBQUc7NkJBR0gsR0FBRyxFQUNILEdBQUc7eUJBR0gsR0FBRyxFQUNILEdBQUc7eUJBR0gsR0FBRyxFQUNILEdBQUc7NkNBR0gsR0FBRyxFQUNILEdBQUc7NENBR0gsR0FBRyxFQUNILEdBQUc7NENBR0gsR0FBRyxFQUNILEdBQUc7d0NBR0gsR0FBRyxFQUNILEdBQUc7d0NBR0gsR0FBRyxFQUNILEdBQUc7UUFmSiwrREFBQSx5QkFBQSxjQUFrQixDQUFDLFlBQUEsdVNBQUE7UUFJbkIsOERBQUEsdUJBQUEsY0FBa0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUEsNFJBQUE7UUFJN0IsOERBQUEsdUJBQUEsVUFBYyxLQUFhLElBQUksQ0FBQyxjQUFBLGlUQUFBO1FBUWhDLDBEQUFBLHVCQUFBLGtHQUF1QixjQUFBLEVBQXZCLHVCQUFBLHVHQUF1QixjQUFBLHdaQUFBO1FBcEN2QiwyS0FBQSxNQUFNLDZEQUFLO1FBSVgsZ0tBQUksQ0FBQyw2REFBZ0I7UUFJckIsMktBQUksQ0FBQyx3RUFBbUI7UUFReEIsOEpBQVMsQ0FBQyw2QkFBRCxDQUFDLDZFQUFLO1FBZ0JmLGthQUFjO1FBcEJkLHFKQUFBLENBQUMsNkJBQUQsQ0FBQyw2RUFBSztRQWZWLDZLQXdDQzs7OztJQUxVLGlCQW5DTCx1REFBQyxnRUFtQ1MsQ0FBQyxJQUFKLENBQUs7SUFJRSxvS0FBSyxDQUFDLElBQUosQ0FBSzs7O1FBdkNyQix1REFBQyJ9,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg== //// [esDecorators-classDeclaration-sourceMap.d.ts.map] {"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"} diff --git a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt index 51ceedca9e400..edecd8f018734 100644 --- a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt +++ b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2015).sourcemap.txt @@ -44,6 +44,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts >>>}; >>>var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { >>> if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; +>>> var d = Object.getOwnPropertyDescriptor(f, "name"); +>>> if (d && d.writable !== false) return f; >>> return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); >>>}; >>>var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { @@ -71,8 +73,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts >@dec >class 2 > C -1 >Emitted(54, 5) Source(5, 7) + SourceIndex(0) -2 >Emitted(54, 6) Source(5, 8) + SourceIndex(0) +1 >Emitted(56, 5) Source(5, 7) + SourceIndex(0) +2 >Emitted(56, 6) Source(5, 8) + SourceIndex(0) --- >>> var _C_method_get, _C_x_get, _C_x_set, _C_y, _C_z_accessor_storage, _C_z_get, _C_z_set, _C_z_1_accessor_storage; >>> let _classDecorators = [dec, dec]; @@ -85,10 +87,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(56, 29) Source(3, 2) + SourceIndex(0) -2 >Emitted(56, 32) Source(3, 5) + SourceIndex(0) -3 >Emitted(56, 34) Source(4, 2) + SourceIndex(0) -4 >Emitted(56, 37) Source(4, 5) + SourceIndex(0) +1->Emitted(58, 29) Source(3, 2) + SourceIndex(0) +2 >Emitted(58, 32) Source(3, 5) + SourceIndex(0) +3 >Emitted(58, 34) Source(4, 2) + SourceIndex(0) +4 >Emitted(58, 37) Source(4, 5) + SourceIndex(0) --- >>> let _classDescriptor; >>> let _classExtraInitializers = []; @@ -132,10 +134,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > method 3 > () { 4 > } -1 >Emitted(85, 9) Source(8, 5) + SourceIndex(0) -2 >Emitted(85, 15) Source(8, 11) + SourceIndex(0) -3 >Emitted(85, 20) Source(8, 15) + SourceIndex(0) -4 >Emitted(85, 21) Source(8, 16) + SourceIndex(0) +1 >Emitted(87, 9) Source(8, 5) + SourceIndex(0) +2 >Emitted(87, 15) Source(8, 11) + SourceIndex(0) +3 >Emitted(87, 20) Source(8, 15) + SourceIndex(0) +4 >Emitted(87, 21) Source(8, 16) + SourceIndex(0) --- >>> get x() { return 1; } 1->^^^^^^^^ @@ -160,15 +162,15 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 7 > ; 8 > 9 > } -1->Emitted(86, 9) Source(12, 5) + SourceIndex(0) -2 >Emitted(86, 13) Source(12, 9) + SourceIndex(0) -3 >Emitted(86, 14) Source(12, 10) + SourceIndex(0) -4 >Emitted(86, 19) Source(12, 15) + SourceIndex(0) -5 >Emitted(86, 26) Source(12, 22) + SourceIndex(0) -6 >Emitted(86, 27) Source(12, 23) + SourceIndex(0) -7 >Emitted(86, 28) Source(12, 24) + SourceIndex(0) -8 >Emitted(86, 29) Source(12, 25) + SourceIndex(0) -9 >Emitted(86, 30) Source(12, 26) + SourceIndex(0) +1->Emitted(88, 9) Source(12, 5) + SourceIndex(0) +2 >Emitted(88, 13) Source(12, 9) + SourceIndex(0) +3 >Emitted(88, 14) Source(12, 10) + SourceIndex(0) +4 >Emitted(88, 19) Source(12, 15) + SourceIndex(0) +5 >Emitted(88, 26) Source(12, 22) + SourceIndex(0) +6 >Emitted(88, 27) Source(12, 23) + SourceIndex(0) +7 >Emitted(88, 28) Source(12, 24) + SourceIndex(0) +8 >Emitted(88, 29) Source(12, 25) + SourceIndex(0) +9 >Emitted(88, 30) Source(12, 26) + SourceIndex(0) --- >>> set x(value) { } 1 >^^^^^^^^ @@ -190,13 +192,13 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 5 > value: number 6 > ) { 7 > } -1 >Emitted(87, 9) Source(16, 5) + SourceIndex(0) -2 >Emitted(87, 13) Source(16, 9) + SourceIndex(0) -3 >Emitted(87, 14) Source(16, 10) + SourceIndex(0) -4 >Emitted(87, 15) Source(16, 11) + SourceIndex(0) -5 >Emitted(87, 20) Source(16, 24) + SourceIndex(0) -6 >Emitted(87, 24) Source(16, 28) + SourceIndex(0) -7 >Emitted(87, 25) Source(16, 29) + SourceIndex(0) +1 >Emitted(89, 9) Source(16, 5) + SourceIndex(0) +2 >Emitted(89, 13) Source(16, 9) + SourceIndex(0) +3 >Emitted(89, 14) Source(16, 10) + SourceIndex(0) +4 >Emitted(89, 15) Source(16, 11) + SourceIndex(0) +5 >Emitted(89, 20) Source(16, 24) + SourceIndex(0) +6 >Emitted(89, 24) Source(16, 28) + SourceIndex(0) +7 >Emitted(89, 25) Source(16, 29) + SourceIndex(0) --- >>> get z() { return __classPrivateFieldGet(this, _C_z_1_accessor_storage, "f"); } 1->^^^^^^^^ @@ -216,10 +218,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > accessor 3 > z 4 > = 1; -1->Emitted(88, 9) Source(24, 5) + SourceIndex(0) -2 >Emitted(88, 13) Source(24, 14) + SourceIndex(0) -3 >Emitted(88, 14) Source(24, 15) + SourceIndex(0) -4 >Emitted(88, 87) Source(24, 20) + SourceIndex(0) +1->Emitted(90, 9) Source(24, 5) + SourceIndex(0) +2 >Emitted(90, 13) Source(24, 14) + SourceIndex(0) +3 >Emitted(90, 14) Source(24, 15) + SourceIndex(0) +4 >Emitted(90, 87) Source(24, 20) + SourceIndex(0) --- >>> set z(value) { __classPrivateFieldSet(this, _C_z_1_accessor_storage, value, "f"); } 1->^^^^^^^^ @@ -230,10 +232,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > accessor 3 > z 4 > = 1; -1->Emitted(89, 9) Source(24, 5) + SourceIndex(0) -2 >Emitted(89, 13) Source(24, 14) + SourceIndex(0) -3 >Emitted(89, 14) Source(24, 15) + SourceIndex(0) -4 >Emitted(89, 92) Source(24, 20) + SourceIndex(0) +1->Emitted(91, 9) Source(24, 5) + SourceIndex(0) +2 >Emitted(91, 13) Source(24, 14) + SourceIndex(0) +3 >Emitted(91, 14) Source(24, 15) + SourceIndex(0) +4 >Emitted(91, 92) Source(24, 20) + SourceIndex(0) --- >>> constructor() { >>> this.y = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _y_initializers, 1)); @@ -267,13 +269,13 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts > y = 6 > 1 7 > ; -1 >Emitted(91, 13) Source(20, 5) + SourceIndex(0) -2 >Emitted(91, 19) Source(20, 6) + SourceIndex(0) -3 >Emitted(91, 23) Source(5, 7) + SourceIndex(0) -4 >Emitted(91, 74) Source(5, 8) + SourceIndex(0) -5 >Emitted(91, 117) Source(20, 9) + SourceIndex(0) -6 >Emitted(91, 118) Source(20, 10) + SourceIndex(0) -7 >Emitted(91, 121) Source(20, 11) + SourceIndex(0) +1 >Emitted(93, 13) Source(20, 5) + SourceIndex(0) +2 >Emitted(93, 19) Source(20, 6) + SourceIndex(0) +3 >Emitted(93, 23) Source(5, 7) + SourceIndex(0) +4 >Emitted(93, 74) Source(5, 8) + SourceIndex(0) +5 >Emitted(93, 117) Source(20, 9) + SourceIndex(0) +6 >Emitted(93, 118) Source(20, 10) + SourceIndex(0) +7 >Emitted(93, 121) Source(20, 11) + SourceIndex(0) --- >>> _C_z_1_accessor_storage.set(this, (__runInitializers(this, _y_extraInitializers), __runInitializers(this, _z_initializers, 1))); 1->^^^^^^^^^^^^ @@ -288,10 +290,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > z = 3 > 1 4 > ; -1->Emitted(92, 13) Source(24, 14) + SourceIndex(0) -2 >Emitted(92, 136) Source(24, 18) + SourceIndex(0) -3 >Emitted(92, 137) Source(24, 19) + SourceIndex(0) -4 >Emitted(92, 141) Source(24, 20) + SourceIndex(0) +1->Emitted(94, 13) Source(24, 14) + SourceIndex(0) +2 >Emitted(94, 136) Source(24, 18) + SourceIndex(0) +3 >Emitted(94, 137) Source(24, 19) + SourceIndex(0) +4 >Emitted(94, 141) Source(24, 20) + SourceIndex(0) --- >>> __runInitializers(this, _z_extraInitializers); >>> } @@ -316,10 +318,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1 >Emitted(105, 31) Source(6, 6) + SourceIndex(0) -2 >Emitted(105, 34) Source(6, 9) + SourceIndex(0) -3 >Emitted(105, 36) Source(7, 6) + SourceIndex(0) -4 >Emitted(105, 39) Source(7, 9) + SourceIndex(0) +1 >Emitted(107, 31) Source(6, 6) + SourceIndex(0) +2 >Emitted(107, 34) Source(6, 9) + SourceIndex(0) +3 >Emitted(107, 36) Source(7, 6) + SourceIndex(0) +4 >Emitted(107, 39) Source(7, 9) + SourceIndex(0) --- >>> _get_x_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -335,10 +337,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(106, 30) Source(10, 6) + SourceIndex(0) -2 >Emitted(106, 33) Source(10, 9) + SourceIndex(0) -3 >Emitted(106, 35) Source(11, 6) + SourceIndex(0) -4 >Emitted(106, 38) Source(11, 9) + SourceIndex(0) +1->Emitted(108, 30) Source(10, 6) + SourceIndex(0) +2 >Emitted(108, 33) Source(10, 9) + SourceIndex(0) +3 >Emitted(108, 35) Source(11, 6) + SourceIndex(0) +4 >Emitted(108, 38) Source(11, 9) + SourceIndex(0) --- >>> _set_x_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -353,10 +355,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(107, 30) Source(14, 6) + SourceIndex(0) -2 >Emitted(107, 33) Source(14, 9) + SourceIndex(0) -3 >Emitted(107, 35) Source(15, 6) + SourceIndex(0) -4 >Emitted(107, 38) Source(15, 9) + SourceIndex(0) +1->Emitted(109, 30) Source(14, 6) + SourceIndex(0) +2 >Emitted(109, 33) Source(14, 9) + SourceIndex(0) +3 >Emitted(109, 35) Source(15, 6) + SourceIndex(0) +4 >Emitted(109, 38) Source(15, 9) + SourceIndex(0) --- >>> _y_decorators = [dec, dec]; 1 >^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -372,10 +374,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1 >Emitted(108, 26) Source(18, 6) + SourceIndex(0) -2 >Emitted(108, 29) Source(18, 9) + SourceIndex(0) -3 >Emitted(108, 31) Source(19, 6) + SourceIndex(0) -4 >Emitted(108, 34) Source(19, 9) + SourceIndex(0) +1 >Emitted(110, 26) Source(18, 6) + SourceIndex(0) +2 >Emitted(110, 29) Source(18, 9) + SourceIndex(0) +3 >Emitted(110, 31) Source(19, 6) + SourceIndex(0) +4 >Emitted(110, 34) Source(19, 9) + SourceIndex(0) --- >>> _z_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -391,10 +393,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(109, 26) Source(22, 6) + SourceIndex(0) -2 >Emitted(109, 29) Source(22, 9) + SourceIndex(0) -3 >Emitted(109, 31) Source(23, 6) + SourceIndex(0) -4 >Emitted(109, 34) Source(23, 9) + SourceIndex(0) +1->Emitted(111, 26) Source(22, 6) + SourceIndex(0) +2 >Emitted(111, 29) Source(22, 9) + SourceIndex(0) +3 >Emitted(111, 31) Source(23, 6) + SourceIndex(0) +4 >Emitted(111, 34) Source(23, 9) + SourceIndex(0) --- >>> _static_private_method_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -410,10 +412,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(110, 46) Source(26, 6) + SourceIndex(0) -2 >Emitted(110, 49) Source(26, 9) + SourceIndex(0) -3 >Emitted(110, 51) Source(27, 6) + SourceIndex(0) -4 >Emitted(110, 54) Source(27, 9) + SourceIndex(0) +1->Emitted(112, 46) Source(26, 6) + SourceIndex(0) +2 >Emitted(112, 49) Source(26, 9) + SourceIndex(0) +3 >Emitted(112, 51) Source(27, 6) + SourceIndex(0) +4 >Emitted(112, 54) Source(27, 9) + SourceIndex(0) --- >>> _static_private_get_x_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -429,10 +431,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(111, 45) Source(30, 6) + SourceIndex(0) -2 >Emitted(111, 48) Source(30, 9) + SourceIndex(0) -3 >Emitted(111, 50) Source(31, 6) + SourceIndex(0) -4 >Emitted(111, 53) Source(31, 9) + SourceIndex(0) +1->Emitted(113, 45) Source(30, 6) + SourceIndex(0) +2 >Emitted(113, 48) Source(30, 9) + SourceIndex(0) +3 >Emitted(113, 50) Source(31, 6) + SourceIndex(0) +4 >Emitted(113, 53) Source(31, 9) + SourceIndex(0) --- >>> _static_private_set_x_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -447,10 +449,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(112, 45) Source(34, 6) + SourceIndex(0) -2 >Emitted(112, 48) Source(34, 9) + SourceIndex(0) -3 >Emitted(112, 50) Source(35, 6) + SourceIndex(0) -4 >Emitted(112, 53) Source(35, 9) + SourceIndex(0) +1->Emitted(114, 45) Source(34, 6) + SourceIndex(0) +2 >Emitted(114, 48) Source(34, 9) + SourceIndex(0) +3 >Emitted(114, 50) Source(35, 6) + SourceIndex(0) +4 >Emitted(114, 53) Source(35, 9) + SourceIndex(0) --- >>> _static_private_y_decorators = [dec, dec]; 1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -466,10 +468,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1 >Emitted(113, 41) Source(38, 6) + SourceIndex(0) -2 >Emitted(113, 44) Source(38, 9) + SourceIndex(0) -3 >Emitted(113, 46) Source(39, 6) + SourceIndex(0) -4 >Emitted(113, 49) Source(39, 9) + SourceIndex(0) +1 >Emitted(115, 41) Source(38, 6) + SourceIndex(0) +2 >Emitted(115, 44) Source(38, 9) + SourceIndex(0) +3 >Emitted(115, 46) Source(39, 6) + SourceIndex(0) +4 >Emitted(115, 49) Source(39, 9) + SourceIndex(0) --- >>> _static_private_z_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -485,10 +487,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(114, 41) Source(42, 6) + SourceIndex(0) -2 >Emitted(114, 44) Source(42, 9) + SourceIndex(0) -3 >Emitted(114, 46) Source(43, 6) + SourceIndex(0) -4 >Emitted(114, 49) Source(43, 9) + SourceIndex(0) +1->Emitted(116, 41) Source(42, 6) + SourceIndex(0) +2 >Emitted(116, 44) Source(42, 9) + SourceIndex(0) +3 >Emitted(116, 46) Source(43, 6) + SourceIndex(0) +4 >Emitted(116, 49) Source(43, 9) + SourceIndex(0) --- >>> __esDecorate(_classThis, _static_private_method_descriptor = { value: __setFunctionName(function () { }, "#method") }, _static_private_method_decorators, { kind: "method", name: "#method", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), get: obj => __classPrivateFieldGet(obj, _classThis, "a", _C_method_get) }, metadata: _metadata }, null, _staticExtraInitializers); 1->^^^^^^^^ @@ -505,13 +507,13 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 5 > } 6 > 7 > -1->Emitted(115, 9) Source(28, 5) + SourceIndex(0) -2 >Emitted(115, 72) Source(28, 5) + SourceIndex(0) -3 >Emitted(115, 97) Source(28, 5) + SourceIndex(0) -4 >Emitted(115, 111) Source(28, 23) + SourceIndex(0) -5 >Emitted(115, 112) Source(28, 24) + SourceIndex(0) -6 >Emitted(115, 124) Source(28, 24) + SourceIndex(0) -7 >Emitted(115, 419) Source(28, 24) + SourceIndex(0) +1->Emitted(117, 9) Source(28, 5) + SourceIndex(0) +2 >Emitted(117, 72) Source(28, 5) + SourceIndex(0) +3 >Emitted(117, 97) Source(28, 5) + SourceIndex(0) +4 >Emitted(117, 111) Source(28, 23) + SourceIndex(0) +5 >Emitted(117, 112) Source(28, 24) + SourceIndex(0) +6 >Emitted(117, 124) Source(28, 24) + SourceIndex(0) +7 >Emitted(117, 419) Source(28, 24) + SourceIndex(0) --- >>> __esDecorate(_classThis, _static_private_get_x_descriptor = { get: __setFunctionName(function () { return 1; }, "#x", "get") }, _static_private_get_x_decorators, { kind: "getter", name: "#x", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), get: obj => __classPrivateFieldGet(obj, _classThis, "a", _C_x_get) }, metadata: _metadata }, null, _staticExtraInitializers); 1 >^^^^^^^^ @@ -541,17 +543,17 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 9 > } 10> 11> -1 >Emitted(116, 9) Source(32, 5) + SourceIndex(0) -2 >Emitted(116, 71) Source(32, 5) + SourceIndex(0) -3 >Emitted(116, 94) Source(32, 5) + SourceIndex(0) -4 >Emitted(116, 108) Source(32, 23) + SourceIndex(0) -5 >Emitted(116, 115) Source(32, 30) + SourceIndex(0) -6 >Emitted(116, 116) Source(32, 31) + SourceIndex(0) -7 >Emitted(116, 117) Source(32, 32) + SourceIndex(0) -8 >Emitted(116, 118) Source(32, 33) + SourceIndex(0) -9 >Emitted(116, 119) Source(32, 34) + SourceIndex(0) -10>Emitted(116, 133) Source(32, 34) + SourceIndex(0) -11>Emitted(116, 417) Source(32, 34) + SourceIndex(0) +1 >Emitted(118, 9) Source(32, 5) + SourceIndex(0) +2 >Emitted(118, 71) Source(32, 5) + SourceIndex(0) +3 >Emitted(118, 94) Source(32, 5) + SourceIndex(0) +4 >Emitted(118, 108) Source(32, 23) + SourceIndex(0) +5 >Emitted(118, 115) Source(32, 30) + SourceIndex(0) +6 >Emitted(118, 116) Source(32, 31) + SourceIndex(0) +7 >Emitted(118, 117) Source(32, 32) + SourceIndex(0) +8 >Emitted(118, 118) Source(32, 33) + SourceIndex(0) +9 >Emitted(118, 119) Source(32, 34) + SourceIndex(0) +10>Emitted(118, 133) Source(32, 34) + SourceIndex(0) +11>Emitted(118, 417) Source(32, 34) + SourceIndex(0) --- >>> __esDecorate(_classThis, _static_private_set_x_descriptor = { set: __setFunctionName(function (value) { }, "#x", "set") }, _static_private_set_x_decorators, { kind: "setter", name: "#x", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), set: (obj, value) => { __classPrivateFieldSet(obj, _classThis, value, "a", _C_x_set); } }, metadata: _metadata }, null, _staticExtraInitializers); 1->^^^^^^^^ @@ -577,15 +579,15 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 7 > } 8 > 9 > -1->Emitted(117, 9) Source(36, 5) + SourceIndex(0) -2 >Emitted(117, 71) Source(36, 5) + SourceIndex(0) -3 >Emitted(117, 94) Source(36, 5) + SourceIndex(0) -4 >Emitted(117, 104) Source(36, 19) + SourceIndex(0) -5 >Emitted(117, 109) Source(36, 32) + SourceIndex(0) -6 >Emitted(117, 113) Source(36, 36) + SourceIndex(0) -7 >Emitted(117, 114) Source(36, 37) + SourceIndex(0) -8 >Emitted(117, 128) Source(36, 37) + SourceIndex(0) -9 >Emitted(117, 433) Source(36, 37) + SourceIndex(0) +1->Emitted(119, 9) Source(36, 5) + SourceIndex(0) +2 >Emitted(119, 71) Source(36, 5) + SourceIndex(0) +3 >Emitted(119, 94) Source(36, 5) + SourceIndex(0) +4 >Emitted(119, 104) Source(36, 19) + SourceIndex(0) +5 >Emitted(119, 109) Source(36, 32) + SourceIndex(0) +6 >Emitted(119, 113) Source(36, 36) + SourceIndex(0) +7 >Emitted(119, 114) Source(36, 37) + SourceIndex(0) +8 >Emitted(119, 128) Source(36, 37) + SourceIndex(0) +9 >Emitted(119, 433) Source(36, 37) + SourceIndex(0) --- >>> __esDecorate(_classThis, _static_private_z_descriptor = { get: __setFunctionName(function () { return __classPrivateFieldGet(_classThis, _classThis, "f", _C_z_accessor_storage); }, "#z", "get"), set: __setFunctionName(function (value) { __classPrivateFieldSet(_classThis, _classThis, value, "f", _C_z_accessor_storage); }, "#z", "set") }, _static_private_z_decorators, { kind: "accessor", name: "#z", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), get: obj => __classPrivateFieldGet(obj, _classThis, "a", _C_z_get), set: (obj, value) => { __classPrivateFieldSet(obj, _classThis, value, "a", _C_z_set); } }, metadata: _metadata }, _static_private_z_initializers, _static_private_z_extraInitializers); 1->^^^^^^^^ @@ -616,16 +618,16 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 8 > static accessor #z = 1; 9 > 10> -1->Emitted(118, 9) Source(44, 5) + SourceIndex(0) -2 >Emitted(118, 67) Source(44, 5) + SourceIndex(0) -3 >Emitted(118, 90) Source(44, 5) + SourceIndex(0) -4 >Emitted(118, 188) Source(44, 28) + SourceIndex(0) -5 >Emitted(118, 202) Source(44, 28) + SourceIndex(0) -6 >Emitted(118, 204) Source(44, 5) + SourceIndex(0) -7 >Emitted(118, 227) Source(44, 5) + SourceIndex(0) -8 >Emitted(118, 330) Source(44, 28) + SourceIndex(0) -9 >Emitted(118, 344) Source(44, 28) + SourceIndex(0) -10>Emitted(118, 752) Source(44, 28) + SourceIndex(0) +1->Emitted(120, 9) Source(44, 5) + SourceIndex(0) +2 >Emitted(120, 67) Source(44, 5) + SourceIndex(0) +3 >Emitted(120, 90) Source(44, 5) + SourceIndex(0) +4 >Emitted(120, 188) Source(44, 28) + SourceIndex(0) +5 >Emitted(120, 202) Source(44, 28) + SourceIndex(0) +6 >Emitted(120, 204) Source(44, 5) + SourceIndex(0) +7 >Emitted(120, 227) Source(44, 5) + SourceIndex(0) +8 >Emitted(120, 330) Source(44, 28) + SourceIndex(0) +9 >Emitted(120, 344) Source(44, 28) + SourceIndex(0) +10>Emitted(120, 752) Source(44, 28) + SourceIndex(0) --- >>> __esDecorate(_classThis, null, _method_decorators, { kind: "method", name: "method", static: false, private: false, access: { has: obj => "method" in obj, get: obj => obj.method }, metadata: _metadata }, null, _instanceExtraInitializers); 1 >^^^^^^^^ @@ -636,10 +638,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > 3 > method 4 > () {} -1 >Emitted(119, 9) Source(8, 5) + SourceIndex(0) -2 >Emitted(119, 180) Source(8, 5) + SourceIndex(0) -3 >Emitted(119, 186) Source(8, 11) + SourceIndex(0) -4 >Emitted(119, 247) Source(8, 16) + SourceIndex(0) +1 >Emitted(121, 9) Source(8, 5) + SourceIndex(0) +2 >Emitted(121, 180) Source(8, 5) + SourceIndex(0) +3 >Emitted(121, 186) Source(8, 11) + SourceIndex(0) +4 >Emitted(121, 247) Source(8, 16) + SourceIndex(0) --- >>> __esDecorate(_classThis, null, _get_x_decorators, { kind: "getter", name: "x", static: false, private: false, access: { has: obj => "x" in obj, get: obj => obj.x }, metadata: _metadata }, null, _instanceExtraInitializers); 1 >^^^^^^^^ @@ -655,10 +657,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > get 3 > x 4 > () { return 1; } -1 >Emitted(120, 9) Source(12, 5) + SourceIndex(0) -2 >Emitted(120, 169) Source(12, 9) + SourceIndex(0) -3 >Emitted(120, 170) Source(12, 10) + SourceIndex(0) -4 >Emitted(120, 231) Source(12, 26) + SourceIndex(0) +1 >Emitted(122, 9) Source(12, 5) + SourceIndex(0) +2 >Emitted(122, 169) Source(12, 9) + SourceIndex(0) +3 >Emitted(122, 170) Source(12, 10) + SourceIndex(0) +4 >Emitted(122, 231) Source(12, 26) + SourceIndex(0) --- >>> __esDecorate(_classThis, null, _set_x_decorators, { kind: "setter", name: "x", static: false, private: false, access: { has: obj => "x" in obj, set: (obj, value) => { obj.x = value; } }, metadata: _metadata }, null, _instanceExtraInitializers); 1->^^^^^^^^ @@ -674,10 +676,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > set 3 > x 4 > (value: number) { } -1->Emitted(121, 9) Source(16, 5) + SourceIndex(0) -2 >Emitted(121, 180) Source(16, 9) + SourceIndex(0) -3 >Emitted(121, 181) Source(16, 10) + SourceIndex(0) -4 >Emitted(121, 253) Source(16, 29) + SourceIndex(0) +1->Emitted(123, 9) Source(16, 5) + SourceIndex(0) +2 >Emitted(123, 180) Source(16, 9) + SourceIndex(0) +3 >Emitted(123, 181) Source(16, 10) + SourceIndex(0) +4 >Emitted(123, 253) Source(16, 29) + SourceIndex(0) --- >>> __esDecorate(_classThis, null, _z_decorators, { kind: "accessor", name: "z", static: false, private: false, access: { has: obj => "z" in obj, get: obj => obj.z, set: (obj, value) => { obj.z = value; } }, metadata: _metadata }, _z_initializers, _z_extraInitializers); 1->^^^^^^^^ @@ -701,12 +703,12 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 4 > 5 > z 6 > = 1; -1->Emitted(122, 9) Source(24, 5) + SourceIndex(0) -2 >Emitted(122, 167) Source(24, 14) + SourceIndex(0) -3 >Emitted(122, 168) Source(24, 15) + SourceIndex(0) -4 >Emitted(122, 197) Source(24, 14) + SourceIndex(0) -5 >Emitted(122, 198) Source(24, 15) + SourceIndex(0) -6 >Emitted(122, 275) Source(24, 20) + SourceIndex(0) +1->Emitted(124, 9) Source(24, 5) + SourceIndex(0) +2 >Emitted(124, 167) Source(24, 14) + SourceIndex(0) +3 >Emitted(124, 168) Source(24, 15) + SourceIndex(0) +4 >Emitted(124, 197) Source(24, 14) + SourceIndex(0) +5 >Emitted(124, 198) Source(24, 15) + SourceIndex(0) +6 >Emitted(124, 275) Source(24, 20) + SourceIndex(0) --- >>> __esDecorate(null, null, _static_private_y_decorators, { kind: "field", name: "#y", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), get: obj => __classPrivateFieldGet(obj, _classThis, "f", _C_y), set: (obj, value) => { __classPrivateFieldSet(obj, _classThis, value, "f", _C_y); } }, metadata: _metadata }, _static_private_y_initializers, _static_private_y_extraInitializers); 1->^^^^^^^^ @@ -729,8 +731,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts > @dec > 2 > static #y = 1; -1->Emitted(123, 9) Source(40, 5) + SourceIndex(0) -2 >Emitted(123, 427) Source(40, 19) + SourceIndex(0) +1->Emitted(125, 9) Source(40, 5) + SourceIndex(0) +2 >Emitted(125, 427) Source(40, 19) + SourceIndex(0) --- >>> __esDecorate(null, null, _y_decorators, { kind: "field", name: "y", static: false, private: false, access: { has: obj => "y" in obj, get: obj => obj.y, set: (obj, value) => { obj.y = value; } }, metadata: _metadata }, _y_initializers, _y_extraInitializers); 1 >^^^^^^^^ @@ -745,12 +747,12 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 4 > 5 > y 6 > = 1; -1 >Emitted(124, 9) Source(20, 5) + SourceIndex(0) -2 >Emitted(124, 158) Source(20, 5) + SourceIndex(0) -3 >Emitted(124, 159) Source(20, 6) + SourceIndex(0) -4 >Emitted(124, 188) Source(20, 5) + SourceIndex(0) -5 >Emitted(124, 189) Source(20, 6) + SourceIndex(0) -6 >Emitted(124, 266) Source(20, 11) + SourceIndex(0) +1 >Emitted(126, 9) Source(20, 5) + SourceIndex(0) +2 >Emitted(126, 158) Source(20, 5) + SourceIndex(0) +3 >Emitted(126, 159) Source(20, 6) + SourceIndex(0) +4 >Emitted(126, 188) Source(20, 5) + SourceIndex(0) +5 >Emitted(126, 189) Source(20, 6) + SourceIndex(0) +6 >Emitted(126, 266) Source(20, 11) + SourceIndex(0) --- >>> __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); 1 >^^^^^^^^ @@ -797,8 +799,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts > @dec > static accessor #z = 1; > } -1 >Emitted(125, 9) Source(5, 1) + SourceIndex(0) -2 >Emitted(125, 182) Source(45, 2) + SourceIndex(0) +1 >Emitted(127, 9) Source(5, 1) + SourceIndex(0) +2 >Emitted(127, 182) Source(45, 2) + SourceIndex(0) --- >>> C = _classThis = _classDescriptor.value; >>> if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); @@ -854,13 +856,13 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 5 > 1 6 > 7 > = 1; -1 >Emitted(129, 5) Source(40, 12) + SourceIndex(0) -2 >Emitted(129, 22) Source(5, 7) + SourceIndex(0) -3 >Emitted(129, 77) Source(5, 8) + SourceIndex(0) -4 >Emitted(129, 141) Source(40, 17) + SourceIndex(0) -5 >Emitted(129, 142) Source(40, 18) + SourceIndex(0) -6 >Emitted(129, 146) Source(40, 14) + SourceIndex(0) -7 >Emitted(129, 147) Source(40, 19) + SourceIndex(0) +1 >Emitted(131, 5) Source(40, 12) + SourceIndex(0) +2 >Emitted(131, 22) Source(5, 7) + SourceIndex(0) +3 >Emitted(131, 77) Source(5, 8) + SourceIndex(0) +4 >Emitted(131, 141) Source(40, 17) + SourceIndex(0) +5 >Emitted(131, 142) Source(40, 18) + SourceIndex(0) +6 >Emitted(131, 146) Source(40, 14) + SourceIndex(0) +7 >Emitted(131, 147) Source(40, 19) + SourceIndex(0) --- >>> _C_z_accessor_storage = { value: (__runInitializers(_classThis, _static_private_y_extraInitializers), __runInitializers(_classThis, _static_private_z_initializers, 1)) }; 1->^^^^ @@ -877,11 +879,11 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > 1 4 > 5 > = 1; -1->Emitted(130, 5) Source(44, 21) + SourceIndex(0) -2 >Emitted(130, 169) Source(44, 26) + SourceIndex(0) -3 >Emitted(130, 170) Source(44, 27) + SourceIndex(0) -4 >Emitted(130, 174) Source(44, 23) + SourceIndex(0) -5 >Emitted(130, 175) Source(44, 28) + SourceIndex(0) +1->Emitted(132, 5) Source(44, 21) + SourceIndex(0) +2 >Emitted(132, 169) Source(44, 26) + SourceIndex(0) +3 >Emitted(132, 170) Source(44, 27) + SourceIndex(0) +4 >Emitted(132, 174) Source(44, 23) + SourceIndex(0) +5 >Emitted(132, 175) Source(44, 28) + SourceIndex(0) --- >>> (() => { >>> __runInitializers(_classThis, _static_private_z_extraInitializers); @@ -890,8 +892,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 > 2 > C -1 >Emitted(133, 9) Source(5, 7) + SourceIndex(0) -2 >Emitted(133, 64) Source(5, 8) + SourceIndex(0) +1 >Emitted(135, 9) Source(5, 7) + SourceIndex(0) +2 >Emitted(135, 64) Source(5, 8) + SourceIndex(0) --- >>> })(); >>> return C = _classThis; diff --git a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).js b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).js index ab0a43f6b02e1..352903ad469a9 100644 --- a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).js +++ b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).js @@ -85,6 +85,8 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) { diff --git a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).js.map b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).js.map index b8f99545e64c7..a1f094b66cefb 100644 --- a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).js.map +++ b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).js.map @@ -1,6 +1,6 @@ //// [esDecorators-classDeclaration-sourceMap.js.map] -{"version":3,"file":"esDecorators-classDeclaration-sourceMap.js","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIM,CAAC;;4BAFN,GAAG,EACH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAEC,GAAG,EACH,GAAG;iCAGH,GAAG,EACH,GAAG;iCAGH,GAAG,EACH,GAAG;6BAGH,GAAG,EACH,GAAG;6BAGH,GAAG,EACH,GAAG;iDAGH,GAAG,EACH,GAAG;gDAGH,GAAG,EACH,GAAG;gDAGH,GAAG,EACH,GAAG;4CAGH,GAAG,EACH,GAAG;4CAGH,GAAG,EACH,GAAG;YAfJ,yDAAA,yBAAA,cAAkB,CAAC,YAAA,uSAAA;YAInB,wDAAA,uBAAA,cAAkB,OAAO,CAAC,CAAC,CAAC,CAAC,cAAA,4RAAA;YAI7B,wDAAA,uBAAA,UAAc,KAAa,IAAI,CAAC,cAAA,iTAAA;YAQhC,oDAAA,uBAAA,4FAAuB,cAAA,EAAvB,uBAAA,iGAAuB,cAAA,wZAAA;YApCvB,qKAAA,MAAM,6DAAK;YAIX,0JAAI,CAAC,6DAAgB;YAIrB,qKAAI,CAAC,wEAAmB;YAQxB,wJAAS,CAAC,6BAAD,CAAC,6EAAK;YAgBf,kaAAc;YApBd,qJAAA,CAAC,6BAAD,CAAC,6EAAK;YAfV,6KAwCC;;;;QArCG,MAAM,KAAI,CAAC;QAIX,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;QAIrB,IAAI,CAAC,CAAC,KAAa,IAAI,CAAC;QAIxB,CAAC,IAfC,mDAAC,2CAeC,CAAC,GAAC;QAIN,iHAAa,CAAC,GAAC;QAAf,IAAS,CAAC,yCAAK;QAAf,IAAS,CAAC,+CAAK;;YAgBR,iBAnCL,uDAAC,gEAmCS,CAAC,IAAJ,CAAK;;;YAIE,oKAAK,CAAC,IAAJ,CAAK;;;;;;;YAvCrB,uDAAC"} -//// https://sokra.github.io/source-map-visualization#base64,dmFyIF9fcnVuSW5pdGlhbGl6ZXJzID0gKHRoaXMgJiYgdGhpcy5fX3J1bkluaXRpYWxpemVycykgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHsNCiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7DQogICAgfQ0KICAgIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwOw0KfTsNCnZhciBfX2VzRGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZXNEZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7DQogICAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTsgcmV0dXJuIGY7IH0NCiAgICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSAiZ2V0dGVyIiA/ICJnZXQiIDoga2luZCA9PT0gInNldHRlciIgPyAic2V0IiA6ICJ2YWx1ZSI7DQogICAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJblsic3RhdGljIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsOw0KICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pOw0KICAgIHZhciBfLCBkb25lID0gZmFsc2U7DQogICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSAiYWNjZXNzIiA/IHt9IDogY29udGV4dEluW3BdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTsNCiAgICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07DQogICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gImFjY2Vzc29yIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTsNCiAgICAgICAgaWYgKGtpbmQgPT09ICJhY2Nlc3NvciIpIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09ICJvYmplY3QiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsNCiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87DQogICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfOw0KICAgICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHsNCiAgICAgICAgICAgIGlmIChraW5kID09PSAiZmllbGQiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7DQogICAgZG9uZSA9IHRydWU7DQp9Ow0KdmFyIF9fc2V0RnVuY3Rpb25OYW1lID0gKHRoaXMgJiYgdGhpcy5fX3NldEZ1bmN0aW9uTmFtZSkgfHwgZnVuY3Rpb24gKGYsIG5hbWUsIHByZWZpeCkgew0KICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gInN5bWJvbCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gIlsiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCAiXSIpIDogIiI7DQogICAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLCAibmFtZSIsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogcHJlZml4ID8gIiIuY29uY2F0KHByZWZpeCwgIiAiLCBuYW1lKSA6IG5hbWUgfSk7DQp9Ow0KdmFyIF9fY2xhc3NQcml2YXRlRmllbGRJbiA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEluKSB8fCBmdW5jdGlvbihzdGF0ZSwgcmVjZWl2ZXIpIHsNCiAgICBpZiAocmVjZWl2ZXIgPT09IG51bGwgfHwgKHR5cGVvZiByZWNlaXZlciAhPT0gIm9iamVjdCIgJiYgdHlwZW9mIHJlY2VpdmVyICE9PSAiZnVuY3Rpb24iKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHVzZSAnaW4nIG9wZXJhdG9yIG9uIG5vbi1vYmplY3QiKTsNCiAgICByZXR1cm4gdHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgPT09IHN0YXRlIDogc3RhdGUuaGFzKHJlY2VpdmVyKTsNCn07DQp2YXIgX19jbGFzc1ByaXZhdGVGaWVsZEdldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZEdldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwga2luZCwgZikgew0KICAgIGlmIChraW5kID09PSAiYSIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIGdldHRlciIpOw0KICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09ICJmdW5jdGlvbiIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHJlYWQgcHJpdmF0ZSBtZW1iZXIgZnJvbSBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7DQogICAgcmV0dXJuIGtpbmQgPT09ICJtIiA/IGYgOiBraW5kID09PSAiYSIgPyBmLmNhbGwocmVjZWl2ZXIpIDogZiA/IGYudmFsdWUgOiBzdGF0ZS5nZXQocmVjZWl2ZXIpOw0KfTsNCnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0ID0gKHRoaXMgJiYgdGhpcy5fX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KSB8fCBmdW5jdGlvbiAocmVjZWl2ZXIsIHN0YXRlLCB2YWx1ZSwga2luZCwgZikgew0KICAgIGlmIChraW5kID09PSAibSIpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgbWV0aG9kIGlzIG5vdCB3cml0YWJsZSIpOw0KICAgIGlmIChraW5kID09PSAiYSIgJiYgIWYpIHRocm93IG5ldyBUeXBlRXJyb3IoIlByaXZhdGUgYWNjZXNzb3Igd2FzIGRlZmluZWQgd2l0aG91dCBhIHNldHRlciIpOw0KICAgIGlmICh0eXBlb2Ygc3RhdGUgPT09ICJmdW5jdGlvbiIgPyByZWNlaXZlciAhPT0gc3RhdGUgfHwgIWYgOiAhc3RhdGUuaGFzKHJlY2VpdmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IHdyaXRlIHByaXZhdGUgbWVtYmVyIHRvIGFuIG9iamVjdCB3aG9zZSBjbGFzcyBkaWQgbm90IGRlY2xhcmUgaXQiKTsNCiAgICByZXR1cm4gKGtpbmQgPT09ICJhIiA/IGYuY2FsbChyZWNlaXZlciwgdmFsdWUpIDogZiA/IGYudmFsdWUgPSB2YWx1ZSA6IHN0YXRlLnNldChyZWNlaXZlciwgdmFsdWUpKSwgdmFsdWU7DQp9Ow0KbGV0IEMgPSAoKCkgPT4gew0KICAgIHZhciBfQ19tZXRob2RfZ2V0LCBfQ194X2dldCwgX0NfeF9zZXQsIF9DX3ksIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSwgX0Nfel9nZXQsIF9DX3pfc2V0Ow0KICAgIGxldCBfY2xhc3NEZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICBsZXQgX2NsYXNzRGVzY3JpcHRvcjsNCiAgICBsZXQgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX2NsYXNzVGhpczsNCiAgICBsZXQgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3I7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVzY3JpcHRvcjsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3lfaW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV96X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yOw0KICAgIGxldCBfbWV0aG9kX2RlY29yYXRvcnM7DQogICAgbGV0IF9nZXRfeF9kZWNvcmF0b3JzOw0KICAgIGxldCBfc2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3lfZGVjb3JhdG9yczsNCiAgICBsZXQgX3lfaW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF95X2V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF96X2RlY29yYXRvcnM7DQogICAgbGV0IF96X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfel9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIHZhciBDID0gY2xhc3Mgew0KICAgICAgICBzdGF0aWMgeyBfY2xhc3NUaGlzID0gdGhpczsgfQ0KICAgICAgICBzdGF0aWMgeyBfX3NldEZ1bmN0aW9uTmFtZSh0aGlzLCAiQyIpOyB9DQogICAgICAgIHN0YXRpYyB7IF9DX21ldGhvZF9nZXQgPSBmdW5jdGlvbiBfQ19tZXRob2RfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZXNjcmlwdG9yLnZhbHVlOyB9LCBfQ194X2dldCA9IGZ1bmN0aW9uIF9DX3hfZ2V0KCkgeyByZXR1cm4gX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH0sIF9DX3hfc2V0ID0gZnVuY3Rpb24gX0NfeF9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yLnNldC5jYWxsKHRoaXMsIHZhbHVlKTsgfSwgX0Nfel9nZXQgPSBmdW5jdGlvbiBfQ196X2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3IuZ2V0LmNhbGwodGhpcyk7IH0sIF9DX3pfc2V0ID0gZnVuY3Rpb24gX0Nfel9zZXQodmFsdWUpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3Iuc2V0LmNhbGwodGhpcywgdmFsdWUpOyB9OyB9DQogICAgICAgIHN0YXRpYyB7DQogICAgICAgICAgICBjb25zdCBfbWV0YWRhdGEgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5tZXRhZGF0YSA/IE9iamVjdC5jcmVhdGUobnVsbCkgOiB2b2lkIDA7DQogICAgICAgICAgICBfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX2dldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3NldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfel9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvciA9IHsgdmFsdWU6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICgpIHsgfSwgIiNtZXRob2QiKSB9LCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnMsIHsga2luZDogIm1ldGhvZCIsIG5hbWU6ICIjbWV0aG9kIiwgc3RhdGljOiB0cnVlLCBwcml2YXRlOiB0cnVlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEluKF9jbGFzc1RoaXMsIG9iaiksIGdldDogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRHZXQob2JqLCBfY2xhc3NUaGlzLCAiYSIsIF9DX21ldGhvZF9nZXQpIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBfc3RhdGljX3ByaXZhdGVfZ2V0X3hfZGVzY3JpcHRvciA9IHsgZ2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9LCAiI3giLCAiZ2V0IikgfSwgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnMsIHsga2luZDogImdldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImEiLCBfQ194X2dldCkgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZXNjcmlwdG9yID0geyBzZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICh2YWx1ZSkgeyB9LCAiI3giLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3NldF94X2RlY29yYXRvcnMsIHsga2luZDogInNldHRlciIsIG5hbWU6ICIjeCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ194X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfc3RhdGljRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIF9zdGF0aWNfcHJpdmF0ZV96X2Rlc2NyaXB0b3IgPSB7IGdldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gX19jbGFzc1ByaXZhdGVGaWVsZEdldCh0aGlzLCBfY2xhc3NUaGlzLCAiZiIsIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSk7IH0sICIjeiIsICJnZXQiKSwgc2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAodmFsdWUpIHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldCh0aGlzLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImYiLCBfQ196X2FjY2Vzc29yX3N0b3JhZ2UpOyB9LCAiI3oiLCAic2V0IikgfSwgX3N0YXRpY19wcml2YXRlX3pfZGVjb3JhdG9ycywgeyBraW5kOiAiYWNjZXNzb3IiLCBuYW1lOiAiI3oiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0Nfel9nZXQpLCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQob2JqLCBfY2xhc3NUaGlzLCB2YWx1ZSwgImEiLCBfQ196X3NldCk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfel9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBudWxsLCBfbWV0aG9kX2RlY29yYXRvcnMsIHsga2luZDogIm1ldGhvZCIsIG5hbWU6ICJtZXRob2QiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJtZXRob2QiIGluIG9iaiwgZ2V0OiBvYmogPT4gb2JqLm1ldGhvZCB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBudWxsLCBfZ2V0X3hfZGVjb3JhdG9ycywgeyBraW5kOiAiZ2V0dGVyIiwgbmFtZTogIngiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ4IiBpbiBvYmosIGdldDogb2JqID0+IG9iai54IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIG51bGwsIF9zZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJzZXR0ZXIiLCBuYW1lOiAieCIsIHN0YXRpYzogZmFsc2UsIHByaXZhdGU6IGZhbHNlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gIngiIGluIG9iaiwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueCA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2luc3RhbmNlRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKHRoaXMsIG51bGwsIF96X2RlY29yYXRvcnMsIHsga2luZDogImFjY2Vzc29yIiwgbmFtZTogInoiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ6IiBpbiBvYmosIGdldDogb2JqID0+IG9iai56LCBzZXQ6IChvYmosIHZhbHVlKSA9PiB7IG9iai56ID0gdmFsdWU7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfel9pbml0aWFsaXplcnMsIF96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfc3RhdGljX3ByaXZhdGVfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICIjeSIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImYiLCBfQ195KSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJmIiwgX0NfeSk7IH0gfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBfc3RhdGljX3ByaXZhdGVfeV9pbml0aWFsaXplcnMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZShudWxsLCBudWxsLCBfeV9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJmaWVsZCIsIG5hbWU6ICJ5Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieSIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueSA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3lfaW5pdGlhbGl6ZXJzLCBfeV9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgICAgICBfX2VzRGVjb3JhdGUobnVsbCwgX2NsYXNzRGVzY3JpcHRvciA9IHsgdmFsdWU6IF9jbGFzc1RoaXMgfSwgX2NsYXNzRGVjb3JhdG9ycywgeyBraW5kOiAiY2xhc3MiLCBuYW1lOiBfY2xhc3NUaGlzLm5hbWUsIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgQyA9IF9jbGFzc1RoaXMgPSBfY2xhc3NEZXNjcmlwdG9yLnZhbHVlOw0KICAgICAgICAgICAgaWYgKF9tZXRhZGF0YSkgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9jbGFzc1RoaXMsIFN5bWJvbC5tZXRhZGF0YSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogX21ldGFkYXRhIH0pOw0KICAgICAgICB9DQogICAgICAgIG1ldGhvZCgpIHsgfQ0KICAgICAgICBnZXQgeCgpIHsgcmV0dXJuIDE7IH0NCiAgICAgICAgc2V0IHgodmFsdWUpIHsgfQ0KICAgICAgICB5ID0gKF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnModGhpcywgX3lfaW5pdGlhbGl6ZXJzLCAxKSk7DQogICAgICAgICN6XzFfYWNjZXNzb3Jfc3RvcmFnZSA9IChfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfeV9leHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF96X2luaXRpYWxpemVycywgMSkpOw0KICAgICAgICBnZXQgeigpIHsgcmV0dXJuIHRoaXMuI3pfMV9hY2Nlc3Nvcl9zdG9yYWdlOyB9DQogICAgICAgIHNldCB6KHZhbHVlKSB7IHRoaXMuI3pfMV9hY2Nlc3Nvcl9zdG9yYWdlID0gdmFsdWU7IH0NCiAgICAgICAgc3RhdGljIHsNCiAgICAgICAgICAgIF9DX3kgPSB7IHZhbHVlOiAoX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3lfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAgICAgfQ0KICAgICAgICBzdGF0aWMgew0KICAgICAgICAgICAgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2V4dHJhSW5pdGlhbGl6ZXJzKSwgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfaW5pdGlhbGl6ZXJzLCAxKSkgfTsNCiAgICAgICAgfQ0KICAgICAgICBjb25zdHJ1Y3RvcigpIHsNCiAgICAgICAgICAgIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgfQ0KICAgICAgICBzdGF0aWMgew0KICAgICAgICAgICAgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19ydW5Jbml0aWFsaXplcnMoX2NsYXNzVGhpcywgX2NsYXNzRXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICB9DQogICAgfTsNCiAgICByZXR1cm4gQyA9IF9jbGFzc1RoaXM7DQp9KSgpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzLm1hcA==,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSU0sQ0FBQzs7NEJBRk4sR0FBRyxFQUNILEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBRUMsR0FBRyxFQUNILEdBQUc7aUNBR0gsR0FBRyxFQUNILEdBQUc7aUNBR0gsR0FBRyxFQUNILEdBQUc7NkJBR0gsR0FBRyxFQUNILEdBQUc7NkJBR0gsR0FBRyxFQUNILEdBQUc7aURBR0gsR0FBRyxFQUNILEdBQUc7Z0RBR0gsR0FBRyxFQUNILEdBQUc7Z0RBR0gsR0FBRyxFQUNILEdBQUc7NENBR0gsR0FBRyxFQUNILEdBQUc7NENBR0gsR0FBRyxFQUNILEdBQUc7WUFmSix5REFBQSx5QkFBQSxjQUFrQixDQUFDLFlBQUEsdVNBQUE7WUFJbkIsd0RBQUEsdUJBQUEsY0FBa0IsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQUEsNFJBQUE7WUFJN0Isd0RBQUEsdUJBQUEsVUFBYyxLQUFhLElBQUksQ0FBQyxjQUFBLGlUQUFBO1lBUWhDLG9EQUFBLHVCQUFBLDRGQUF1QixjQUFBLEVBQXZCLHVCQUFBLGlHQUF1QixjQUFBLHdaQUFBO1lBcEN2QixxS0FBQSxNQUFNLDZEQUFLO1lBSVgsMEpBQUksQ0FBQyw2REFBZ0I7WUFJckIscUtBQUksQ0FBQyx3RUFBbUI7WUFReEIsd0pBQVMsQ0FBQyw2QkFBRCxDQUFDLDZFQUFLO1lBZ0JmLGthQUFjO1lBcEJkLHFKQUFBLENBQUMsNkJBQUQsQ0FBQyw2RUFBSztZQWZWLDZLQXdDQzs7OztRQXJDRyxNQUFNLEtBQUksQ0FBQztRQUlYLElBQUksQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUlyQixJQUFJLENBQUMsQ0FBQyxLQUFhLElBQUksQ0FBQztRQUl4QixDQUFDLElBZkMsbURBQUMsMkNBZUMsQ0FBQyxHQUFDO1FBSU4saUhBQWEsQ0FBQyxHQUFDO1FBQWYsSUFBUyxDQUFDLHlDQUFLO1FBQWYsSUFBUyxDQUFDLCtDQUFLOztZQWdCUixpQkFuQ0wsdURBQUMsZ0VBbUNTLENBQUMsSUFBSixDQUFLOzs7WUFJRSxvS0FBSyxDQUFDLElBQUosQ0FBSzs7Ozs7OztZQXZDckIsdURBQUMifQ==,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg== +{"version":3,"file":"esDecorators-classDeclaration-sourceMap.js","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIM,CAAC;;4BAFN,GAAG,EACH,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAEC,GAAG,EACH,GAAG;iCAGH,GAAG,EACH,GAAG;iCAGH,GAAG,EACH,GAAG;6BAGH,GAAG,EACH,GAAG;6BAGH,GAAG,EACH,GAAG;iDAGH,GAAG,EACH,GAAG;gDAGH,GAAG,EACH,GAAG;gDAGH,GAAG,EACH,GAAG;4CAGH,GAAG,EACH,GAAG;4CAGH,GAAG,EACH,GAAG;YAfJ,yDAAA,yBAAA,cAAkB,CAAC,YAAA,uSAAA;YAInB,wDAAA,uBAAA,cAAkB,OAAO,CAAC,CAAC,CAAC,CAAC,cAAA,4RAAA;YAI7B,wDAAA,uBAAA,UAAc,KAAa,IAAI,CAAC,cAAA,iTAAA;YAQhC,oDAAA,uBAAA,4FAAuB,cAAA,EAAvB,uBAAA,iGAAuB,cAAA,wZAAA;YApCvB,qKAAA,MAAM,6DAAK;YAIX,0JAAI,CAAC,6DAAgB;YAIrB,qKAAI,CAAC,wEAAmB;YAQxB,wJAAS,CAAC,6BAAD,CAAC,6EAAK;YAgBf,kaAAc;YApBd,qJAAA,CAAC,6BAAD,CAAC,6EAAK;YAfV,6KAwCC;;;;QArCG,MAAM,KAAI,CAAC;QAIX,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;QAIrB,IAAI,CAAC,CAAC,KAAa,IAAI,CAAC;QAIxB,CAAC,IAfC,mDAAC,2CAeC,CAAC,GAAC;QAIN,iHAAa,CAAC,GAAC;QAAf,IAAS,CAAC,yCAAK;QAAf,IAAS,CAAC,+CAAK;;YAgBR,iBAnCL,uDAAC,gEAmCS,CAAC,IAAJ,CAAK;;;YAIE,oKAAK,CAAC,IAAJ,CAAK;;;;;;;YAvCrB,uDAAC"} +//// https://sokra.github.io/source-map-visualization#base64,dmFyIF9fcnVuSW5pdGlhbGl6ZXJzID0gKHRoaXMgJiYgdGhpcy5fX3J1bkluaXRpYWxpemVycykgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGluaXRpYWxpemVycywgdmFsdWUpIHsNCiAgICB2YXIgdXNlVmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMjsNCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluaXRpYWxpemVycy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YWx1ZSA9IHVzZVZhbHVlID8gaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZywgdmFsdWUpIDogaW5pdGlhbGl6ZXJzW2ldLmNhbGwodGhpc0FyZyk7DQogICAgfQ0KICAgIHJldHVybiB1c2VWYWx1ZSA/IHZhbHVlIDogdm9pZCAwOw0KfTsNCnZhciBfX2VzRGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZXNEZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGN0b3IsIGRlc2NyaXB0b3JJbiwgZGVjb3JhdG9ycywgY29udGV4dEluLCBpbml0aWFsaXplcnMsIGV4dHJhSW5pdGlhbGl6ZXJzKSB7DQogICAgZnVuY3Rpb24gYWNjZXB0KGYpIHsgaWYgKGYgIT09IHZvaWQgMCAmJiB0eXBlb2YgZiAhPT0gImZ1bmN0aW9uIikgdGhyb3cgbmV3IFR5cGVFcnJvcigiRnVuY3Rpb24gZXhwZWN0ZWQiKTsgcmV0dXJuIGY7IH0NCiAgICB2YXIga2luZCA9IGNvbnRleHRJbi5raW5kLCBrZXkgPSBraW5kID09PSAiZ2V0dGVyIiA/ICJnZXQiIDoga2luZCA9PT0gInNldHRlciIgPyAic2V0IiA6ICJ2YWx1ZSI7DQogICAgdmFyIHRhcmdldCA9ICFkZXNjcmlwdG9ySW4gJiYgY3RvciA/IGNvbnRleHRJblsic3RhdGljIl0gPyBjdG9yIDogY3Rvci5wcm90b3R5cGUgOiBudWxsOw0KICAgIHZhciBkZXNjcmlwdG9yID0gZGVzY3JpcHRvckluIHx8ICh0YXJnZXQgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgY29udGV4dEluLm5hbWUpIDoge30pOw0KICAgIHZhciBfLCBkb25lID0gZmFsc2U7DQogICAgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsNCiAgICAgICAgdmFyIGNvbnRleHQgPSB7fTsNCiAgICAgICAgZm9yICh2YXIgcCBpbiBjb250ZXh0SW4pIGNvbnRleHRbcF0gPSBwID09PSAiYWNjZXNzIiA/IHt9IDogY29udGV4dEluW3BdOw0KICAgICAgICBmb3IgKHZhciBwIGluIGNvbnRleHRJbi5hY2Nlc3MpIGNvbnRleHQuYWNjZXNzW3BdID0gY29udGV4dEluLmFjY2Vzc1twXTsNCiAgICAgICAgY29udGV4dC5hZGRJbml0aWFsaXplciA9IGZ1bmN0aW9uIChmKSB7IGlmIChkb25lKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgYWRkIGluaXRpYWxpemVycyBhZnRlciBkZWNvcmF0aW9uIGhhcyBjb21wbGV0ZWQiKTsgZXh0cmFJbml0aWFsaXplcnMucHVzaChhY2NlcHQoZiB8fCBudWxsKSk7IH07DQogICAgICAgIHZhciByZXN1bHQgPSAoMCwgZGVjb3JhdG9yc1tpXSkoa2luZCA9PT0gImFjY2Vzc29yIiA/IHsgZ2V0OiBkZXNjcmlwdG9yLmdldCwgc2V0OiBkZXNjcmlwdG9yLnNldCB9IDogZGVzY3JpcHRvcltrZXldLCBjb250ZXh0KTsNCiAgICAgICAgaWYgKGtpbmQgPT09ICJhY2Nlc3NvciIpIHsNCiAgICAgICAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkgY29udGludWU7DQogICAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsIHx8IHR5cGVvZiByZXN1bHQgIT09ICJvYmplY3QiKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QgZXhwZWN0ZWQiKTsNCiAgICAgICAgICAgIGlmIChfID0gYWNjZXB0KHJlc3VsdC5nZXQpKSBkZXNjcmlwdG9yLmdldCA9IF87DQogICAgICAgICAgICBpZiAoXyA9IGFjY2VwdChyZXN1bHQuc2V0KSkgZGVzY3JpcHRvci5zZXQgPSBfOw0KICAgICAgICAgICAgaWYgKF8gPSBhY2NlcHQocmVzdWx0LmluaXQpKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlIGlmIChfID0gYWNjZXB0KHJlc3VsdCkpIHsNCiAgICAgICAgICAgIGlmIChraW5kID09PSAiZmllbGQiKSBpbml0aWFsaXplcnMudW5zaGlmdChfKTsNCiAgICAgICAgICAgIGVsc2UgZGVzY3JpcHRvcltrZXldID0gXzsNCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAodGFyZ2V0KSBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBjb250ZXh0SW4ubmFtZSwgZGVzY3JpcHRvcik7DQogICAgZG9uZSA9IHRydWU7DQp9Ow0KdmFyIF9fc2V0RnVuY3Rpb25OYW1lID0gKHRoaXMgJiYgdGhpcy5fX3NldEZ1bmN0aW9uTmFtZSkgfHwgZnVuY3Rpb24gKGYsIG5hbWUsIHByZWZpeCkgew0KICAgIGlmICh0eXBlb2YgbmFtZSA9PT0gInN5bWJvbCIpIG5hbWUgPSBuYW1lLmRlc2NyaXB0aW9uID8gIlsiLmNvbmNhdChuYW1lLmRlc2NyaXB0aW9uLCAiXSIpIDogIiI7DQogICAgdmFyIGQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGYsICJuYW1lIik7DQogICAgaWYgKGQgJiYgZC53cml0YWJsZSAhPT0gZmFsc2UpIHJldHVybiBmOw0KICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZiwgIm5hbWUiLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6IHByZWZpeCA/ICIiLmNvbmNhdChwcmVmaXgsICIgIiwgbmFtZSkgOiBuYW1lIH0pOw0KfTsNCnZhciBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4gPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRJbikgfHwgZnVuY3Rpb24oc3RhdGUsIHJlY2VpdmVyKSB7DQogICAgaWYgKHJlY2VpdmVyID09PSBudWxsIHx8ICh0eXBlb2YgcmVjZWl2ZXIgIT09ICJvYmplY3QiICYmIHR5cGVvZiByZWNlaXZlciAhPT0gImZ1bmN0aW9uIikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgJ2luJyBvcGVyYXRvciBvbiBub24tb2JqZWN0Iik7DQogICAgcmV0dXJuIHR5cGVvZiBzdGF0ZSA9PT0gImZ1bmN0aW9uIiA/IHJlY2VpdmVyID09PSBzdGF0ZSA6IHN0YXRlLmhhcyhyZWNlaXZlcik7DQp9Ow0KdmFyIF9fY2xhc3NQcml2YXRlRmllbGRHZXQgPSAodGhpcyAmJiB0aGlzLl9fY2xhc3NQcml2YXRlRmllbGRHZXQpIHx8IGZ1bmN0aW9uIChyZWNlaXZlciwgc3RhdGUsIGtpbmQsIGYpIHsNCiAgICBpZiAoa2luZCA9PT0gImEiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBnZXR0ZXIiKTsNCiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCByZWFkIHByaXZhdGUgbWVtYmVyIGZyb20gYW4gb2JqZWN0IHdob3NlIGNsYXNzIGRpZCBub3QgZGVjbGFyZSBpdCIpOw0KICAgIHJldHVybiBraW5kID09PSAibSIgPyBmIDoga2luZCA9PT0gImEiID8gZi5jYWxsKHJlY2VpdmVyKSA6IGYgPyBmLnZhbHVlIDogc3RhdGUuZ2V0KHJlY2VpdmVyKTsNCn07DQp2YXIgX19jbGFzc1ByaXZhdGVGaWVsZFNldCA9ICh0aGlzICYmIHRoaXMuX19jbGFzc1ByaXZhdGVGaWVsZFNldCkgfHwgZnVuY3Rpb24gKHJlY2VpdmVyLCBzdGF0ZSwgdmFsdWUsIGtpbmQsIGYpIHsNCiAgICBpZiAoa2luZCA9PT0gIm0iKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIG1ldGhvZCBpcyBub3Qgd3JpdGFibGUiKTsNCiAgICBpZiAoa2luZCA9PT0gImEiICYmICFmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJQcml2YXRlIGFjY2Vzc29yIHdhcyBkZWZpbmVkIHdpdGhvdXQgYSBzZXR0ZXIiKTsNCiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAiZnVuY3Rpb24iID8gcmVjZWl2ZXIgIT09IHN0YXRlIHx8ICFmIDogIXN0YXRlLmhhcyhyZWNlaXZlcikpIHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB3cml0ZSBwcml2YXRlIG1lbWJlciB0byBhbiBvYmplY3Qgd2hvc2UgY2xhc3MgZGlkIG5vdCBkZWNsYXJlIGl0Iik7DQogICAgcmV0dXJuIChraW5kID09PSAiYSIgPyBmLmNhbGwocmVjZWl2ZXIsIHZhbHVlKSA6IGYgPyBmLnZhbHVlID0gdmFsdWUgOiBzdGF0ZS5zZXQocmVjZWl2ZXIsIHZhbHVlKSksIHZhbHVlOw0KfTsNCmxldCBDID0gKCgpID0+IHsNCiAgICB2YXIgX0NfbWV0aG9kX2dldCwgX0NfeF9nZXQsIF9DX3hfc2V0LCBfQ195LCBfQ196X2FjY2Vzc29yX3N0b3JhZ2UsIF9DX3pfZ2V0LCBfQ196X3NldDsNCiAgICBsZXQgX2NsYXNzRGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgbGV0IF9jbGFzc0Rlc2NyaXB0b3I7DQogICAgbGV0IF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzID0gW107DQogICAgbGV0IF9jbGFzc1RoaXM7DQogICAgbGV0IF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvcjsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZXNjcmlwdG9yOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3NldF94X2Rlc2NyaXB0b3I7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2RlY29yYXRvcnM7DQogICAgbGV0IF9zdGF0aWNfcHJpdmF0ZV95X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfeV9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzOw0KICAgIGxldCBfc3RhdGljX3ByaXZhdGVfel9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3N0YXRpY19wcml2YXRlX3pfZGVzY3JpcHRvcjsNCiAgICBsZXQgX21ldGhvZF9kZWNvcmF0b3JzOw0KICAgIGxldCBfZ2V0X3hfZGVjb3JhdG9yczsNCiAgICBsZXQgX3NldF94X2RlY29yYXRvcnM7DQogICAgbGV0IF95X2RlY29yYXRvcnM7DQogICAgbGV0IF95X2luaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfeV9leHRyYUluaXRpYWxpemVycyA9IFtdOw0KICAgIGxldCBfel9kZWNvcmF0b3JzOw0KICAgIGxldCBfel9pbml0aWFsaXplcnMgPSBbXTsNCiAgICBsZXQgX3pfZXh0cmFJbml0aWFsaXplcnMgPSBbXTsNCiAgICB2YXIgQyA9IGNsYXNzIHsNCiAgICAgICAgc3RhdGljIHsgX2NsYXNzVGhpcyA9IHRoaXM7IH0NCiAgICAgICAgc3RhdGljIHsgX19zZXRGdW5jdGlvbk5hbWUodGhpcywgIkMiKTsgfQ0KICAgICAgICBzdGF0aWMgeyBfQ19tZXRob2RfZ2V0ID0gZnVuY3Rpb24gX0NfbWV0aG9kX2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9tZXRob2RfZGVzY3JpcHRvci52YWx1ZTsgfSwgX0NfeF9nZXQgPSBmdW5jdGlvbiBfQ194X2dldCgpIHsgcmV0dXJuIF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZXNjcmlwdG9yLmdldC5jYWxsKHRoaXMpOyB9LCBfQ194X3NldCA9IGZ1bmN0aW9uIF9DX3hfc2V0KHZhbHVlKSB7IHJldHVybiBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVzY3JpcHRvci5zZXQuY2FsbCh0aGlzLCB2YWx1ZSk7IH0sIF9DX3pfZ2V0ID0gZnVuY3Rpb24gX0Nfel9nZXQoKSB7IHJldHVybiBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yLmdldC5jYWxsKHRoaXMpOyB9LCBfQ196X3NldCA9IGZ1bmN0aW9uIF9DX3pfc2V0KHZhbHVlKSB7IHJldHVybiBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yLnNldC5jYWxsKHRoaXMsIHZhbHVlKTsgfTsgfQ0KICAgICAgICBzdGF0aWMgew0KICAgICAgICAgICAgY29uc3QgX21ldGFkYXRhID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wubWV0YWRhdGEgPyBPYmplY3QuY3JlYXRlKG51bGwpIDogdm9pZCAwOw0KICAgICAgICAgICAgX21ldGhvZF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9nZXRfeF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9zZXRfeF9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF95X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3pfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3N0YXRpY19wcml2YXRlX2dldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3N0YXRpY19wcml2YXRlX3NldF94X2RlY29yYXRvcnMgPSBbZGVjLCBkZWNdOw0KICAgICAgICAgICAgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9ycyA9IFtkZWMsIGRlY107DQogICAgICAgICAgICBfc3RhdGljX3ByaXZhdGVfel9kZWNvcmF0b3JzID0gW2RlYywgZGVjXTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBfc3RhdGljX3ByaXZhdGVfbWV0aG9kX2Rlc2NyaXB0b3IgPSB7IHZhbHVlOiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAoKSB7IH0sICIjbWV0aG9kIikgfSwgX3N0YXRpY19wcml2YXRlX21ldGhvZF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJtZXRob2QiLCBuYW1lOiAiI21ldGhvZCIsIHN0YXRpYzogdHJ1ZSwgcHJpdmF0ZTogdHJ1ZSwgYWNjZXNzOiB7IGhhczogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRJbihfY2xhc3NUaGlzLCBvYmopLCBnZXQ6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KG9iaiwgX2NsYXNzVGhpcywgImEiLCBfQ19tZXRob2RfZ2V0KSB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgICAgICBfX2VzRGVjb3JhdGUodGhpcywgX3N0YXRpY19wcml2YXRlX2dldF94X2Rlc2NyaXB0b3IgPSB7IGdldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfSwgIiN4IiwgImdldCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9nZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJnZXR0ZXIiLCBuYW1lOiAiI3giLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJhIiwgX0NfeF9nZXQpIH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBfc3RhdGljX3ByaXZhdGVfc2V0X3hfZGVzY3JpcHRvciA9IHsgc2V0OiBfX3NldEZ1bmN0aW9uTmFtZShmdW5jdGlvbiAodmFsdWUpIHsgfSwgIiN4IiwgInNldCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV9zZXRfeF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJzZXR0ZXIiLCBuYW1lOiAiI3giLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJhIiwgX0NfeF9zZXQpOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgbnVsbCwgX3N0YXRpY0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBfc3RhdGljX3ByaXZhdGVfel9kZXNjcmlwdG9yID0geyBnZXQ6IF9fc2V0RnVuY3Rpb25OYW1lKGZ1bmN0aW9uICgpIHsgcmV0dXJuIF9fY2xhc3NQcml2YXRlRmllbGRHZXQodGhpcywgX2NsYXNzVGhpcywgImYiLCBfQ196X2FjY2Vzc29yX3N0b3JhZ2UpOyB9LCAiI3oiLCAiZ2V0IiksIHNldDogX19zZXRGdW5jdGlvbk5hbWUoZnVuY3Rpb24gKHZhbHVlKSB7IF9fY2xhc3NQcml2YXRlRmllbGRTZXQodGhpcywgX2NsYXNzVGhpcywgdmFsdWUsICJmIiwgX0Nfel9hY2Nlc3Nvcl9zdG9yYWdlKTsgfSwgIiN6IiwgInNldCIpIH0sIF9zdGF0aWNfcHJpdmF0ZV96X2RlY29yYXRvcnMsIHsga2luZDogImFjY2Vzc29yIiwgbmFtZTogIiN6Iiwgc3RhdGljOiB0cnVlLCBwcml2YXRlOiB0cnVlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEluKF9jbGFzc1RoaXMsIG9iaiksIGdldDogb2JqID0+IF9fY2xhc3NQcml2YXRlRmllbGRHZXQob2JqLCBfY2xhc3NUaGlzLCAiYSIsIF9DX3pfZ2V0KSwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KG9iaiwgX2NsYXNzVGhpcywgdmFsdWUsICJhIiwgX0Nfel9zZXQpOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3N0YXRpY19wcml2YXRlX3pfaW5pdGlhbGl6ZXJzLCBfc3RhdGljX3ByaXZhdGVfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgICAgICBfX2VzRGVjb3JhdGUodGhpcywgbnVsbCwgX21ldGhvZF9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJtZXRob2QiLCBuYW1lOiAibWV0aG9kIiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAibWV0aG9kIiBpbiBvYmosIGdldDogb2JqID0+IG9iai5tZXRob2QgfSwgbWV0YWRhdGE6IF9tZXRhZGF0YSB9LCBudWxsLCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyk7DQogICAgICAgICAgICBfX2VzRGVjb3JhdGUodGhpcywgbnVsbCwgX2dldF94X2RlY29yYXRvcnMsIHsga2luZDogImdldHRlciIsIG5hbWU6ICJ4Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieCIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueCB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBudWxsLCBfc2V0X3hfZGVjb3JhdG9ycywgeyBraW5kOiAic2V0dGVyIiwgbmFtZTogIngiLCBzdGF0aWM6IGZhbHNlLCBwcml2YXRlOiBmYWxzZSwgYWNjZXNzOiB7IGhhczogb2JqID0+ICJ4IiBpbiBvYmosIHNldDogKG9iaiwgdmFsdWUpID0+IHsgb2JqLnggPSB2YWx1ZTsgfSB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9pbnN0YW5jZUV4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fZXNEZWNvcmF0ZSh0aGlzLCBudWxsLCBfel9kZWNvcmF0b3JzLCB7IGtpbmQ6ICJhY2Nlc3NvciIsIG5hbWU6ICJ6Iiwgc3RhdGljOiBmYWxzZSwgcHJpdmF0ZTogZmFsc2UsIGFjY2VzczogeyBoYXM6IG9iaiA9PiAieiIgaW4gb2JqLCBnZXQ6IG9iaiA9PiBvYmoueiwgc2V0OiAob2JqLCB2YWx1ZSkgPT4geyBvYmoueiA9IHZhbHVlOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3pfaW5pdGlhbGl6ZXJzLCBfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgICAgICBfX2VzRGVjb3JhdGUobnVsbCwgbnVsbCwgX3N0YXRpY19wcml2YXRlX3lfZGVjb3JhdG9ycywgeyBraW5kOiAiZmllbGQiLCBuYW1lOiAiI3kiLCBzdGF0aWM6IHRydWUsIHByaXZhdGU6IHRydWUsIGFjY2VzczogeyBoYXM6IG9iaiA9PiBfX2NsYXNzUHJpdmF0ZUZpZWxkSW4oX2NsYXNzVGhpcywgb2JqKSwgZ2V0OiBvYmogPT4gX19jbGFzc1ByaXZhdGVGaWVsZEdldChvYmosIF9jbGFzc1RoaXMsICJmIiwgX0NfeSksIHNldDogKG9iaiwgdmFsdWUpID0+IHsgX19jbGFzc1ByaXZhdGVGaWVsZFNldChvYmosIF9jbGFzc1RoaXMsIHZhbHVlLCAiZiIsIF9DX3kpOyB9IH0sIG1ldGFkYXRhOiBfbWV0YWRhdGEgfSwgX3N0YXRpY19wcml2YXRlX3lfaW5pdGlhbGl6ZXJzLCBfc3RhdGljX3ByaXZhdGVfeV9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgICAgICBfX2VzRGVjb3JhdGUobnVsbCwgbnVsbCwgX3lfZGVjb3JhdG9ycywgeyBraW5kOiAiZmllbGQiLCBuYW1lOiAieSIsIHN0YXRpYzogZmFsc2UsIHByaXZhdGU6IGZhbHNlLCBhY2Nlc3M6IHsgaGFzOiBvYmogPT4gInkiIGluIG9iaiwgZ2V0OiBvYmogPT4gb2JqLnksIHNldDogKG9iaiwgdmFsdWUpID0+IHsgb2JqLnkgPSB2YWx1ZTsgfSB9LCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIF95X2luaXRpYWxpemVycywgX3lfZXh0cmFJbml0aWFsaXplcnMpOw0KICAgICAgICAgICAgX19lc0RlY29yYXRlKG51bGwsIF9jbGFzc0Rlc2NyaXB0b3IgPSB7IHZhbHVlOiBfY2xhc3NUaGlzIH0sIF9jbGFzc0RlY29yYXRvcnMsIHsga2luZDogImNsYXNzIiwgbmFtZTogX2NsYXNzVGhpcy5uYW1lLCBtZXRhZGF0YTogX21ldGFkYXRhIH0sIG51bGwsIF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIEMgPSBfY2xhc3NUaGlzID0gX2NsYXNzRGVzY3JpcHRvci52YWx1ZTsNCiAgICAgICAgICAgIGlmIChfbWV0YWRhdGEpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfY2xhc3NUaGlzLCBTeW1ib2wubWV0YWRhdGEsIHsgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IF9tZXRhZGF0YSB9KTsNCiAgICAgICAgfQ0KICAgICAgICBtZXRob2QoKSB7IH0NCiAgICAgICAgZ2V0IHgoKSB7IHJldHVybiAxOyB9DQogICAgICAgIHNldCB4KHZhbHVlKSB7IH0NCiAgICAgICAgeSA9IChfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfaW5zdGFuY2VFeHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKHRoaXMsIF95X2luaXRpYWxpemVycywgMSkpOw0KICAgICAgICAjel8xX2FjY2Vzc29yX3N0b3JhZ2UgPSAoX19ydW5Jbml0aWFsaXplcnModGhpcywgX3lfZXh0cmFJbml0aWFsaXplcnMpLCBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfel9pbml0aWFsaXplcnMsIDEpKTsNCiAgICAgICAgZ2V0IHooKSB7IHJldHVybiB0aGlzLiN6XzFfYWNjZXNzb3Jfc3RvcmFnZTsgfQ0KICAgICAgICBzZXQgeih2YWx1ZSkgeyB0aGlzLiN6XzFfYWNjZXNzb3Jfc3RvcmFnZSA9IHZhbHVlOyB9DQogICAgICAgIHN0YXRpYyB7DQogICAgICAgICAgICBfQ195ID0geyB2YWx1ZTogKF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNFeHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV95X2luaXRpYWxpemVycywgMSkpIH07DQogICAgICAgIH0NCiAgICAgICAgc3RhdGljIHsNCiAgICAgICAgICAgIF9DX3pfYWNjZXNzb3Jfc3RvcmFnZSA9IHsgdmFsdWU6IChfX3J1bkluaXRpYWxpemVycyhfY2xhc3NUaGlzLCBfc3RhdGljX3ByaXZhdGVfeV9leHRyYUluaXRpYWxpemVycyksIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV96X2luaXRpYWxpemVycywgMSkpIH07DQogICAgICAgIH0NCiAgICAgICAgY29uc3RydWN0b3IoKSB7DQogICAgICAgICAgICBfX3J1bkluaXRpYWxpemVycyh0aGlzLCBfel9leHRyYUluaXRpYWxpemVycyk7DQogICAgICAgIH0NCiAgICAgICAgc3RhdGljIHsNCiAgICAgICAgICAgIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9zdGF0aWNfcHJpdmF0ZV96X2V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgICAgIF9fcnVuSW5pdGlhbGl6ZXJzKF9jbGFzc1RoaXMsIF9jbGFzc0V4dHJhSW5pdGlhbGl6ZXJzKTsNCiAgICAgICAgfQ0KICAgIH07DQogICAgcmV0dXJuIEMgPSBfY2xhc3NUaGlzOw0KfSkoKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVzRGVjb3JhdG9ycy1jbGFzc0RlY2xhcmF0aW9uLXNvdXJjZU1hcC5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXNEZWNvcmF0b3JzLWNsYXNzRGVjbGFyYXRpb24tc291cmNlTWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFJTSxDQUFDOzs0QkFGTixHQUFHLEVBQ0gsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0FFQyxHQUFHLEVBQ0gsR0FBRztpQ0FHSCxHQUFHLEVBQ0gsR0FBRztpQ0FHSCxHQUFHLEVBQ0gsR0FBRzs2QkFHSCxHQUFHLEVBQ0gsR0FBRzs2QkFHSCxHQUFHLEVBQ0gsR0FBRztpREFHSCxHQUFHLEVBQ0gsR0FBRztnREFHSCxHQUFHLEVBQ0gsR0FBRztnREFHSCxHQUFHLEVBQ0gsR0FBRzs0Q0FHSCxHQUFHLEVBQ0gsR0FBRzs0Q0FHSCxHQUFHLEVBQ0gsR0FBRztZQWZKLHlEQUFBLHlCQUFBLGNBQWtCLENBQUMsWUFBQSx1U0FBQTtZQUluQix3REFBQSx1QkFBQSxjQUFrQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBQSw0UkFBQTtZQUk3Qix3REFBQSx1QkFBQSxVQUFjLEtBQWEsSUFBSSxDQUFDLGNBQUEsaVRBQUE7WUFRaEMsb0RBQUEsdUJBQUEsNEZBQXVCLGNBQUEsRUFBdkIsdUJBQUEsaUdBQXVCLGNBQUEsd1pBQUE7WUFwQ3ZCLHFLQUFBLE1BQU0sNkRBQUs7WUFJWCwwSkFBSSxDQUFDLDZEQUFnQjtZQUlyQixxS0FBSSxDQUFDLHdFQUFtQjtZQVF4Qix3SkFBUyxDQUFDLDZCQUFELENBQUMsNkVBQUs7WUFnQmYsa2FBQWM7WUFwQmQscUpBQUEsQ0FBQyw2QkFBRCxDQUFDLDZFQUFLO1lBZlYsNktBd0NDOzs7O1FBckNHLE1BQU0sS0FBSSxDQUFDO1FBSVgsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBSXJCLElBQUksQ0FBQyxDQUFDLEtBQWEsSUFBSSxDQUFDO1FBSXhCLENBQUMsSUFmQyxtREFBQywyQ0FlQyxDQUFDLEdBQUM7UUFJTixpSEFBYSxDQUFDLEdBQUM7UUFBZixJQUFTLENBQUMseUNBQUs7UUFBZixJQUFTLENBQUMsK0NBQUs7O1lBZ0JSLGlCQW5DTCx1REFBQyxnRUFtQ1MsQ0FBQyxJQUFKLENBQUs7OztZQUlFLG9LQUFLLENBQUMsSUFBSixDQUFLOzs7Ozs7O1lBdkNyQix1REFBQyJ9,ZGVjbGFyZSB2YXIgZGVjOiBhbnk7CgpAZGVjCkBkZWMKY2xhc3MgQyB7CiAgICBAZGVjCiAgICBAZGVjCiAgICBtZXRob2QoKSB7fQoKICAgIEBkZWMKICAgIEBkZWMKICAgIGdldCB4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHNldCB4KHZhbHVlOiBudW1iZXIpIHsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHkgPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIGFjY2Vzc29yIHogPSAxOwoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyAjbWV0aG9kKCkge30KCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgZ2V0ICN4KCkgeyByZXR1cm4gMTsgfQoKICAgIEBkZWMKICAgIEBkZWMKICAgIHN0YXRpYyBzZXQgI3godmFsdWU6IG51bWJlcikgeyB9CgogICAgQGRlYwogICAgQGRlYwogICAgc3RhdGljICN5ID0gMTsKCiAgICBAZGVjCiAgICBAZGVjCiAgICBzdGF0aWMgYWNjZXNzb3IgI3ogPSAxOwp9Cg== //// [esDecorators-classDeclaration-sourceMap.d.ts.map] {"version":3,"file":"esDecorators-classDeclaration-sourceMap.d.ts","sourceRoot":"","sources":["esDecorators-classDeclaration-sourceMap.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC;AAErB,cAEM,CAAC;;IAGH,MAAM;IAEN,IAEI,CAAC,IAIQ,MAAM,CAJE;IAErB,IAEI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAK;IAIxB,CAAC,SAAK;IAIN,QAAQ,CAAC,CAAC,SAAK;CAqBlB"} diff --git a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt index 2b89583dd8ff5..0f25f79f24f69 100644 --- a/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt +++ b/tests/baselines/reference/esDecorators-classDeclaration-sourceMap(target=es2022).sourcemap.txt @@ -44,6 +44,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts >>>}; >>>var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { >>> if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; +>>> var d = Object.getOwnPropertyDescriptor(f, "name"); +>>> if (d && d.writable !== false) return f; >>> return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); >>>}; >>>var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) { @@ -71,8 +73,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts >@dec >class 2 > C -1 >Emitted(54, 5) Source(5, 7) + SourceIndex(0) -2 >Emitted(54, 6) Source(5, 8) + SourceIndex(0) +1 >Emitted(56, 5) Source(5, 7) + SourceIndex(0) +2 >Emitted(56, 6) Source(5, 8) + SourceIndex(0) --- >>> var _C_method_get, _C_x_get, _C_x_set, _C_y, _C_z_accessor_storage, _C_z_get, _C_z_set; >>> let _classDecorators = [dec, dec]; @@ -85,10 +87,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(56, 29) Source(3, 2) + SourceIndex(0) -2 >Emitted(56, 32) Source(3, 5) + SourceIndex(0) -3 >Emitted(56, 34) Source(4, 2) + SourceIndex(0) -4 >Emitted(56, 37) Source(4, 5) + SourceIndex(0) +1->Emitted(58, 29) Source(3, 2) + SourceIndex(0) +2 >Emitted(58, 32) Source(3, 5) + SourceIndex(0) +3 >Emitted(58, 34) Source(4, 2) + SourceIndex(0) +4 >Emitted(58, 37) Source(4, 5) + SourceIndex(0) --- >>> let _classDescriptor; >>> let _classExtraInitializers = []; @@ -136,10 +138,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1 >Emitted(90, 35) Source(6, 6) + SourceIndex(0) -2 >Emitted(90, 38) Source(6, 9) + SourceIndex(0) -3 >Emitted(90, 40) Source(7, 6) + SourceIndex(0) -4 >Emitted(90, 43) Source(7, 9) + SourceIndex(0) +1 >Emitted(92, 35) Source(6, 6) + SourceIndex(0) +2 >Emitted(92, 38) Source(6, 9) + SourceIndex(0) +3 >Emitted(92, 40) Source(7, 6) + SourceIndex(0) +4 >Emitted(92, 43) Source(7, 9) + SourceIndex(0) --- >>> _get_x_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -155,10 +157,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(91, 34) Source(10, 6) + SourceIndex(0) -2 >Emitted(91, 37) Source(10, 9) + SourceIndex(0) -3 >Emitted(91, 39) Source(11, 6) + SourceIndex(0) -4 >Emitted(91, 42) Source(11, 9) + SourceIndex(0) +1->Emitted(93, 34) Source(10, 6) + SourceIndex(0) +2 >Emitted(93, 37) Source(10, 9) + SourceIndex(0) +3 >Emitted(93, 39) Source(11, 6) + SourceIndex(0) +4 >Emitted(93, 42) Source(11, 9) + SourceIndex(0) --- >>> _set_x_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -173,10 +175,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(92, 34) Source(14, 6) + SourceIndex(0) -2 >Emitted(92, 37) Source(14, 9) + SourceIndex(0) -3 >Emitted(92, 39) Source(15, 6) + SourceIndex(0) -4 >Emitted(92, 42) Source(15, 9) + SourceIndex(0) +1->Emitted(94, 34) Source(14, 6) + SourceIndex(0) +2 >Emitted(94, 37) Source(14, 9) + SourceIndex(0) +3 >Emitted(94, 39) Source(15, 6) + SourceIndex(0) +4 >Emitted(94, 42) Source(15, 9) + SourceIndex(0) --- >>> _y_decorators = [dec, dec]; 1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -192,10 +194,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1 >Emitted(93, 30) Source(18, 6) + SourceIndex(0) -2 >Emitted(93, 33) Source(18, 9) + SourceIndex(0) -3 >Emitted(93, 35) Source(19, 6) + SourceIndex(0) -4 >Emitted(93, 38) Source(19, 9) + SourceIndex(0) +1 >Emitted(95, 30) Source(18, 6) + SourceIndex(0) +2 >Emitted(95, 33) Source(18, 9) + SourceIndex(0) +3 >Emitted(95, 35) Source(19, 6) + SourceIndex(0) +4 >Emitted(95, 38) Source(19, 9) + SourceIndex(0) --- >>> _z_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -211,10 +213,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(94, 30) Source(22, 6) + SourceIndex(0) -2 >Emitted(94, 33) Source(22, 9) + SourceIndex(0) -3 >Emitted(94, 35) Source(23, 6) + SourceIndex(0) -4 >Emitted(94, 38) Source(23, 9) + SourceIndex(0) +1->Emitted(96, 30) Source(22, 6) + SourceIndex(0) +2 >Emitted(96, 33) Source(22, 9) + SourceIndex(0) +3 >Emitted(96, 35) Source(23, 6) + SourceIndex(0) +4 >Emitted(96, 38) Source(23, 9) + SourceIndex(0) --- >>> _static_private_method_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -230,10 +232,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(95, 50) Source(26, 6) + SourceIndex(0) -2 >Emitted(95, 53) Source(26, 9) + SourceIndex(0) -3 >Emitted(95, 55) Source(27, 6) + SourceIndex(0) -4 >Emitted(95, 58) Source(27, 9) + SourceIndex(0) +1->Emitted(97, 50) Source(26, 6) + SourceIndex(0) +2 >Emitted(97, 53) Source(26, 9) + SourceIndex(0) +3 >Emitted(97, 55) Source(27, 6) + SourceIndex(0) +4 >Emitted(97, 58) Source(27, 9) + SourceIndex(0) --- >>> _static_private_get_x_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -249,10 +251,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(96, 49) Source(30, 6) + SourceIndex(0) -2 >Emitted(96, 52) Source(30, 9) + SourceIndex(0) -3 >Emitted(96, 54) Source(31, 6) + SourceIndex(0) -4 >Emitted(96, 57) Source(31, 9) + SourceIndex(0) +1->Emitted(98, 49) Source(30, 6) + SourceIndex(0) +2 >Emitted(98, 52) Source(30, 9) + SourceIndex(0) +3 >Emitted(98, 54) Source(31, 6) + SourceIndex(0) +4 >Emitted(98, 57) Source(31, 9) + SourceIndex(0) --- >>> _static_private_set_x_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -267,10 +269,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(97, 49) Source(34, 6) + SourceIndex(0) -2 >Emitted(97, 52) Source(34, 9) + SourceIndex(0) -3 >Emitted(97, 54) Source(35, 6) + SourceIndex(0) -4 >Emitted(97, 57) Source(35, 9) + SourceIndex(0) +1->Emitted(99, 49) Source(34, 6) + SourceIndex(0) +2 >Emitted(99, 52) Source(34, 9) + SourceIndex(0) +3 >Emitted(99, 54) Source(35, 6) + SourceIndex(0) +4 >Emitted(99, 57) Source(35, 9) + SourceIndex(0) --- >>> _static_private_y_decorators = [dec, dec]; 1 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -286,10 +288,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1 >Emitted(98, 45) Source(38, 6) + SourceIndex(0) -2 >Emitted(98, 48) Source(38, 9) + SourceIndex(0) -3 >Emitted(98, 50) Source(39, 6) + SourceIndex(0) -4 >Emitted(98, 53) Source(39, 9) + SourceIndex(0) +1 >Emitted(100, 45) Source(38, 6) + SourceIndex(0) +2 >Emitted(100, 48) Source(38, 9) + SourceIndex(0) +3 >Emitted(100, 50) Source(39, 6) + SourceIndex(0) +4 >Emitted(100, 53) Source(39, 9) + SourceIndex(0) --- >>> _static_private_z_decorators = [dec, dec]; 1->^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -305,10 +307,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > > @ 4 > dec -1->Emitted(99, 45) Source(42, 6) + SourceIndex(0) -2 >Emitted(99, 48) Source(42, 9) + SourceIndex(0) -3 >Emitted(99, 50) Source(43, 6) + SourceIndex(0) -4 >Emitted(99, 53) Source(43, 9) + SourceIndex(0) +1->Emitted(101, 45) Source(42, 6) + SourceIndex(0) +2 >Emitted(101, 48) Source(42, 9) + SourceIndex(0) +3 >Emitted(101, 50) Source(43, 6) + SourceIndex(0) +4 >Emitted(101, 53) Source(43, 9) + SourceIndex(0) --- >>> __esDecorate(this, _static_private_method_descriptor = { value: __setFunctionName(function () { }, "#method") }, _static_private_method_decorators, { kind: "method", name: "#method", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), get: obj => __classPrivateFieldGet(obj, _classThis, "a", _C_method_get) }, metadata: _metadata }, null, _staticExtraInitializers); 1->^^^^^^^^^^^^ @@ -325,13 +327,13 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 5 > } 6 > 7 > -1->Emitted(100, 13) Source(28, 5) + SourceIndex(0) -2 >Emitted(100, 70) Source(28, 5) + SourceIndex(0) -3 >Emitted(100, 95) Source(28, 5) + SourceIndex(0) -4 >Emitted(100, 109) Source(28, 23) + SourceIndex(0) -5 >Emitted(100, 110) Source(28, 24) + SourceIndex(0) -6 >Emitted(100, 122) Source(28, 24) + SourceIndex(0) -7 >Emitted(100, 417) Source(28, 24) + SourceIndex(0) +1->Emitted(102, 13) Source(28, 5) + SourceIndex(0) +2 >Emitted(102, 70) Source(28, 5) + SourceIndex(0) +3 >Emitted(102, 95) Source(28, 5) + SourceIndex(0) +4 >Emitted(102, 109) Source(28, 23) + SourceIndex(0) +5 >Emitted(102, 110) Source(28, 24) + SourceIndex(0) +6 >Emitted(102, 122) Source(28, 24) + SourceIndex(0) +7 >Emitted(102, 417) Source(28, 24) + SourceIndex(0) --- >>> __esDecorate(this, _static_private_get_x_descriptor = { get: __setFunctionName(function () { return 1; }, "#x", "get") }, _static_private_get_x_decorators, { kind: "getter", name: "#x", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), get: obj => __classPrivateFieldGet(obj, _classThis, "a", _C_x_get) }, metadata: _metadata }, null, _staticExtraInitializers); 1 >^^^^^^^^^^^^ @@ -361,17 +363,17 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 9 > } 10> 11> -1 >Emitted(101, 13) Source(32, 5) + SourceIndex(0) -2 >Emitted(101, 69) Source(32, 5) + SourceIndex(0) -3 >Emitted(101, 92) Source(32, 5) + SourceIndex(0) -4 >Emitted(101, 106) Source(32, 23) + SourceIndex(0) -5 >Emitted(101, 113) Source(32, 30) + SourceIndex(0) -6 >Emitted(101, 114) Source(32, 31) + SourceIndex(0) -7 >Emitted(101, 115) Source(32, 32) + SourceIndex(0) -8 >Emitted(101, 116) Source(32, 33) + SourceIndex(0) -9 >Emitted(101, 117) Source(32, 34) + SourceIndex(0) -10>Emitted(101, 131) Source(32, 34) + SourceIndex(0) -11>Emitted(101, 415) Source(32, 34) + SourceIndex(0) +1 >Emitted(103, 13) Source(32, 5) + SourceIndex(0) +2 >Emitted(103, 69) Source(32, 5) + SourceIndex(0) +3 >Emitted(103, 92) Source(32, 5) + SourceIndex(0) +4 >Emitted(103, 106) Source(32, 23) + SourceIndex(0) +5 >Emitted(103, 113) Source(32, 30) + SourceIndex(0) +6 >Emitted(103, 114) Source(32, 31) + SourceIndex(0) +7 >Emitted(103, 115) Source(32, 32) + SourceIndex(0) +8 >Emitted(103, 116) Source(32, 33) + SourceIndex(0) +9 >Emitted(103, 117) Source(32, 34) + SourceIndex(0) +10>Emitted(103, 131) Source(32, 34) + SourceIndex(0) +11>Emitted(103, 415) Source(32, 34) + SourceIndex(0) --- >>> __esDecorate(this, _static_private_set_x_descriptor = { set: __setFunctionName(function (value) { }, "#x", "set") }, _static_private_set_x_decorators, { kind: "setter", name: "#x", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), set: (obj, value) => { __classPrivateFieldSet(obj, _classThis, value, "a", _C_x_set); } }, metadata: _metadata }, null, _staticExtraInitializers); 1->^^^^^^^^^^^^ @@ -397,15 +399,15 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 7 > } 8 > 9 > -1->Emitted(102, 13) Source(36, 5) + SourceIndex(0) -2 >Emitted(102, 69) Source(36, 5) + SourceIndex(0) -3 >Emitted(102, 92) Source(36, 5) + SourceIndex(0) -4 >Emitted(102, 102) Source(36, 19) + SourceIndex(0) -5 >Emitted(102, 107) Source(36, 32) + SourceIndex(0) -6 >Emitted(102, 111) Source(36, 36) + SourceIndex(0) -7 >Emitted(102, 112) Source(36, 37) + SourceIndex(0) -8 >Emitted(102, 126) Source(36, 37) + SourceIndex(0) -9 >Emitted(102, 431) Source(36, 37) + SourceIndex(0) +1->Emitted(104, 13) Source(36, 5) + SourceIndex(0) +2 >Emitted(104, 69) Source(36, 5) + SourceIndex(0) +3 >Emitted(104, 92) Source(36, 5) + SourceIndex(0) +4 >Emitted(104, 102) Source(36, 19) + SourceIndex(0) +5 >Emitted(104, 107) Source(36, 32) + SourceIndex(0) +6 >Emitted(104, 111) Source(36, 36) + SourceIndex(0) +7 >Emitted(104, 112) Source(36, 37) + SourceIndex(0) +8 >Emitted(104, 126) Source(36, 37) + SourceIndex(0) +9 >Emitted(104, 431) Source(36, 37) + SourceIndex(0) --- >>> __esDecorate(this, _static_private_z_descriptor = { get: __setFunctionName(function () { return __classPrivateFieldGet(this, _classThis, "f", _C_z_accessor_storage); }, "#z", "get"), set: __setFunctionName(function (value) { __classPrivateFieldSet(this, _classThis, value, "f", _C_z_accessor_storage); }, "#z", "set") }, _static_private_z_decorators, { kind: "accessor", name: "#z", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), get: obj => __classPrivateFieldGet(obj, _classThis, "a", _C_z_get), set: (obj, value) => { __classPrivateFieldSet(obj, _classThis, value, "a", _C_z_set); } }, metadata: _metadata }, _static_private_z_initializers, _static_private_z_extraInitializers); 1->^^^^^^^^^^^^ @@ -436,16 +438,16 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 8 > static accessor #z = 1; 9 > 10> -1->Emitted(103, 13) Source(44, 5) + SourceIndex(0) -2 >Emitted(103, 65) Source(44, 5) + SourceIndex(0) -3 >Emitted(103, 88) Source(44, 5) + SourceIndex(0) -4 >Emitted(103, 180) Source(44, 28) + SourceIndex(0) -5 >Emitted(103, 194) Source(44, 28) + SourceIndex(0) -6 >Emitted(103, 196) Source(44, 5) + SourceIndex(0) -7 >Emitted(103, 219) Source(44, 5) + SourceIndex(0) -8 >Emitted(103, 316) Source(44, 28) + SourceIndex(0) -9 >Emitted(103, 330) Source(44, 28) + SourceIndex(0) -10>Emitted(103, 738) Source(44, 28) + SourceIndex(0) +1->Emitted(105, 13) Source(44, 5) + SourceIndex(0) +2 >Emitted(105, 65) Source(44, 5) + SourceIndex(0) +3 >Emitted(105, 88) Source(44, 5) + SourceIndex(0) +4 >Emitted(105, 180) Source(44, 28) + SourceIndex(0) +5 >Emitted(105, 194) Source(44, 28) + SourceIndex(0) +6 >Emitted(105, 196) Source(44, 5) + SourceIndex(0) +7 >Emitted(105, 219) Source(44, 5) + SourceIndex(0) +8 >Emitted(105, 316) Source(44, 28) + SourceIndex(0) +9 >Emitted(105, 330) Source(44, 28) + SourceIndex(0) +10>Emitted(105, 738) Source(44, 28) + SourceIndex(0) --- >>> __esDecorate(this, null, _method_decorators, { kind: "method", name: "method", static: false, private: false, access: { has: obj => "method" in obj, get: obj => obj.method }, metadata: _metadata }, null, _instanceExtraInitializers); 1 >^^^^^^^^^^^^ @@ -456,10 +458,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > 3 > method 4 > () {} -1 >Emitted(104, 13) Source(8, 5) + SourceIndex(0) -2 >Emitted(104, 178) Source(8, 5) + SourceIndex(0) -3 >Emitted(104, 184) Source(8, 11) + SourceIndex(0) -4 >Emitted(104, 245) Source(8, 16) + SourceIndex(0) +1 >Emitted(106, 13) Source(8, 5) + SourceIndex(0) +2 >Emitted(106, 178) Source(8, 5) + SourceIndex(0) +3 >Emitted(106, 184) Source(8, 11) + SourceIndex(0) +4 >Emitted(106, 245) Source(8, 16) + SourceIndex(0) --- >>> __esDecorate(this, null, _get_x_decorators, { kind: "getter", name: "x", static: false, private: false, access: { has: obj => "x" in obj, get: obj => obj.x }, metadata: _metadata }, null, _instanceExtraInitializers); 1 >^^^^^^^^^^^^ @@ -475,10 +477,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > get 3 > x 4 > () { return 1; } -1 >Emitted(105, 13) Source(12, 5) + SourceIndex(0) -2 >Emitted(105, 167) Source(12, 9) + SourceIndex(0) -3 >Emitted(105, 168) Source(12, 10) + SourceIndex(0) -4 >Emitted(105, 229) Source(12, 26) + SourceIndex(0) +1 >Emitted(107, 13) Source(12, 5) + SourceIndex(0) +2 >Emitted(107, 167) Source(12, 9) + SourceIndex(0) +3 >Emitted(107, 168) Source(12, 10) + SourceIndex(0) +4 >Emitted(107, 229) Source(12, 26) + SourceIndex(0) --- >>> __esDecorate(this, null, _set_x_decorators, { kind: "setter", name: "x", static: false, private: false, access: { has: obj => "x" in obj, set: (obj, value) => { obj.x = value; } }, metadata: _metadata }, null, _instanceExtraInitializers); 1->^^^^^^^^^^^^ @@ -494,10 +496,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > set 3 > x 4 > (value: number) { } -1->Emitted(106, 13) Source(16, 5) + SourceIndex(0) -2 >Emitted(106, 178) Source(16, 9) + SourceIndex(0) -3 >Emitted(106, 179) Source(16, 10) + SourceIndex(0) -4 >Emitted(106, 251) Source(16, 29) + SourceIndex(0) +1->Emitted(108, 13) Source(16, 5) + SourceIndex(0) +2 >Emitted(108, 178) Source(16, 9) + SourceIndex(0) +3 >Emitted(108, 179) Source(16, 10) + SourceIndex(0) +4 >Emitted(108, 251) Source(16, 29) + SourceIndex(0) --- >>> __esDecorate(this, null, _z_decorators, { kind: "accessor", name: "z", static: false, private: false, access: { has: obj => "z" in obj, get: obj => obj.z, set: (obj, value) => { obj.z = value; } }, metadata: _metadata }, _z_initializers, _z_extraInitializers); 1->^^^^^^^^^^^^ @@ -521,12 +523,12 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 4 > 5 > z 6 > = 1; -1->Emitted(107, 13) Source(24, 5) + SourceIndex(0) -2 >Emitted(107, 165) Source(24, 14) + SourceIndex(0) -3 >Emitted(107, 166) Source(24, 15) + SourceIndex(0) -4 >Emitted(107, 195) Source(24, 14) + SourceIndex(0) -5 >Emitted(107, 196) Source(24, 15) + SourceIndex(0) -6 >Emitted(107, 273) Source(24, 20) + SourceIndex(0) +1->Emitted(109, 13) Source(24, 5) + SourceIndex(0) +2 >Emitted(109, 165) Source(24, 14) + SourceIndex(0) +3 >Emitted(109, 166) Source(24, 15) + SourceIndex(0) +4 >Emitted(109, 195) Source(24, 14) + SourceIndex(0) +5 >Emitted(109, 196) Source(24, 15) + SourceIndex(0) +6 >Emitted(109, 273) Source(24, 20) + SourceIndex(0) --- >>> __esDecorate(null, null, _static_private_y_decorators, { kind: "field", name: "#y", static: true, private: true, access: { has: obj => __classPrivateFieldIn(_classThis, obj), get: obj => __classPrivateFieldGet(obj, _classThis, "f", _C_y), set: (obj, value) => { __classPrivateFieldSet(obj, _classThis, value, "f", _C_y); } }, metadata: _metadata }, _static_private_y_initializers, _static_private_y_extraInitializers); 1->^^^^^^^^^^^^ @@ -549,8 +551,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts > @dec > 2 > static #y = 1; -1->Emitted(108, 13) Source(40, 5) + SourceIndex(0) -2 >Emitted(108, 431) Source(40, 19) + SourceIndex(0) +1->Emitted(110, 13) Source(40, 5) + SourceIndex(0) +2 >Emitted(110, 431) Source(40, 19) + SourceIndex(0) --- >>> __esDecorate(null, null, _y_decorators, { kind: "field", name: "y", static: false, private: false, access: { has: obj => "y" in obj, get: obj => obj.y, set: (obj, value) => { obj.y = value; } }, metadata: _metadata }, _y_initializers, _y_extraInitializers); 1 >^^^^^^^^^^^^ @@ -565,12 +567,12 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 4 > 5 > y 6 > = 1; -1 >Emitted(109, 13) Source(20, 5) + SourceIndex(0) -2 >Emitted(109, 162) Source(20, 5) + SourceIndex(0) -3 >Emitted(109, 163) Source(20, 6) + SourceIndex(0) -4 >Emitted(109, 192) Source(20, 5) + SourceIndex(0) -5 >Emitted(109, 193) Source(20, 6) + SourceIndex(0) -6 >Emitted(109, 270) Source(20, 11) + SourceIndex(0) +1 >Emitted(111, 13) Source(20, 5) + SourceIndex(0) +2 >Emitted(111, 162) Source(20, 5) + SourceIndex(0) +3 >Emitted(111, 163) Source(20, 6) + SourceIndex(0) +4 >Emitted(111, 192) Source(20, 5) + SourceIndex(0) +5 >Emitted(111, 193) Source(20, 6) + SourceIndex(0) +6 >Emitted(111, 270) Source(20, 11) + SourceIndex(0) --- >>> __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); 1 >^^^^^^^^^^^^ @@ -617,8 +619,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts > @dec > static accessor #z = 1; > } -1 >Emitted(110, 13) Source(5, 1) + SourceIndex(0) -2 >Emitted(110, 186) Source(45, 2) + SourceIndex(0) +1 >Emitted(112, 13) Source(5, 1) + SourceIndex(0) +2 >Emitted(112, 186) Source(45, 2) + SourceIndex(0) --- >>> C = _classThis = _classDescriptor.value; >>> if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); @@ -633,10 +635,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > method 3 > () { 4 > } -1 >Emitted(114, 9) Source(8, 5) + SourceIndex(0) -2 >Emitted(114, 15) Source(8, 11) + SourceIndex(0) -3 >Emitted(114, 20) Source(8, 15) + SourceIndex(0) -4 >Emitted(114, 21) Source(8, 16) + SourceIndex(0) +1 >Emitted(116, 9) Source(8, 5) + SourceIndex(0) +2 >Emitted(116, 15) Source(8, 11) + SourceIndex(0) +3 >Emitted(116, 20) Source(8, 15) + SourceIndex(0) +4 >Emitted(116, 21) Source(8, 16) + SourceIndex(0) --- >>> get x() { return 1; } 1->^^^^^^^^ @@ -661,15 +663,15 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 7 > ; 8 > 9 > } -1->Emitted(115, 9) Source(12, 5) + SourceIndex(0) -2 >Emitted(115, 13) Source(12, 9) + SourceIndex(0) -3 >Emitted(115, 14) Source(12, 10) + SourceIndex(0) -4 >Emitted(115, 19) Source(12, 15) + SourceIndex(0) -5 >Emitted(115, 26) Source(12, 22) + SourceIndex(0) -6 >Emitted(115, 27) Source(12, 23) + SourceIndex(0) -7 >Emitted(115, 28) Source(12, 24) + SourceIndex(0) -8 >Emitted(115, 29) Source(12, 25) + SourceIndex(0) -9 >Emitted(115, 30) Source(12, 26) + SourceIndex(0) +1->Emitted(117, 9) Source(12, 5) + SourceIndex(0) +2 >Emitted(117, 13) Source(12, 9) + SourceIndex(0) +3 >Emitted(117, 14) Source(12, 10) + SourceIndex(0) +4 >Emitted(117, 19) Source(12, 15) + SourceIndex(0) +5 >Emitted(117, 26) Source(12, 22) + SourceIndex(0) +6 >Emitted(117, 27) Source(12, 23) + SourceIndex(0) +7 >Emitted(117, 28) Source(12, 24) + SourceIndex(0) +8 >Emitted(117, 29) Source(12, 25) + SourceIndex(0) +9 >Emitted(117, 30) Source(12, 26) + SourceIndex(0) --- >>> set x(value) { } 1 >^^^^^^^^ @@ -691,13 +693,13 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 5 > value: number 6 > ) { 7 > } -1 >Emitted(116, 9) Source(16, 5) + SourceIndex(0) -2 >Emitted(116, 13) Source(16, 9) + SourceIndex(0) -3 >Emitted(116, 14) Source(16, 10) + SourceIndex(0) -4 >Emitted(116, 15) Source(16, 11) + SourceIndex(0) -5 >Emitted(116, 20) Source(16, 24) + SourceIndex(0) -6 >Emitted(116, 24) Source(16, 28) + SourceIndex(0) -7 >Emitted(116, 25) Source(16, 29) + SourceIndex(0) +1 >Emitted(118, 9) Source(16, 5) + SourceIndex(0) +2 >Emitted(118, 13) Source(16, 9) + SourceIndex(0) +3 >Emitted(118, 14) Source(16, 10) + SourceIndex(0) +4 >Emitted(118, 15) Source(16, 11) + SourceIndex(0) +5 >Emitted(118, 20) Source(16, 24) + SourceIndex(0) +6 >Emitted(118, 24) Source(16, 28) + SourceIndex(0) +7 >Emitted(118, 25) Source(16, 29) + SourceIndex(0) --- >>> y = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _y_initializers, 1)); 1->^^^^^^^^ @@ -734,13 +736,13 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts > y = 6 > 1 7 > ; -1->Emitted(117, 9) Source(20, 5) + SourceIndex(0) -2 >Emitted(117, 10) Source(20, 6) + SourceIndex(0) -3 >Emitted(117, 14) Source(5, 7) + SourceIndex(0) -4 >Emitted(117, 65) Source(5, 8) + SourceIndex(0) -5 >Emitted(117, 108) Source(20, 9) + SourceIndex(0) -6 >Emitted(117, 109) Source(20, 10) + SourceIndex(0) -7 >Emitted(117, 112) Source(20, 11) + SourceIndex(0) +1->Emitted(119, 9) Source(20, 5) + SourceIndex(0) +2 >Emitted(119, 10) Source(20, 6) + SourceIndex(0) +3 >Emitted(119, 14) Source(5, 7) + SourceIndex(0) +4 >Emitted(119, 65) Source(5, 8) + SourceIndex(0) +5 >Emitted(119, 108) Source(20, 9) + SourceIndex(0) +6 >Emitted(119, 109) Source(20, 10) + SourceIndex(0) +7 >Emitted(119, 112) Source(20, 11) + SourceIndex(0) --- >>> #z_1_accessor_storage = (__runInitializers(this, _y_extraInitializers), __runInitializers(this, _z_initializers, 1)); 1->^^^^^^^^ @@ -755,10 +757,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > accessor z = 3 > 1 4 > ; -1->Emitted(118, 9) Source(24, 5) + SourceIndex(0) -2 >Emitted(118, 122) Source(24, 18) + SourceIndex(0) -3 >Emitted(118, 123) Source(24, 19) + SourceIndex(0) -4 >Emitted(118, 126) Source(24, 20) + SourceIndex(0) +1->Emitted(120, 9) Source(24, 5) + SourceIndex(0) +2 >Emitted(120, 122) Source(24, 18) + SourceIndex(0) +3 >Emitted(120, 123) Source(24, 19) + SourceIndex(0) +4 >Emitted(120, 126) Source(24, 20) + SourceIndex(0) --- >>> get z() { return this.#z_1_accessor_storage; } 1 >^^^^^^^^ @@ -770,10 +772,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > accessor 3 > z 4 > = 1; -1 >Emitted(119, 9) Source(24, 5) + SourceIndex(0) -2 >Emitted(119, 13) Source(24, 14) + SourceIndex(0) -3 >Emitted(119, 14) Source(24, 15) + SourceIndex(0) -4 >Emitted(119, 55) Source(24, 20) + SourceIndex(0) +1 >Emitted(121, 9) Source(24, 5) + SourceIndex(0) +2 >Emitted(121, 13) Source(24, 14) + SourceIndex(0) +3 >Emitted(121, 14) Source(24, 15) + SourceIndex(0) +4 >Emitted(121, 55) Source(24, 20) + SourceIndex(0) --- >>> set z(value) { this.#z_1_accessor_storage = value; } 1->^^^^^^^^ @@ -784,10 +786,10 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > accessor 3 > z 4 > = 1; -1->Emitted(120, 9) Source(24, 5) + SourceIndex(0) -2 >Emitted(120, 13) Source(24, 14) + SourceIndex(0) -3 >Emitted(120, 14) Source(24, 15) + SourceIndex(0) -4 >Emitted(120, 61) Source(24, 20) + SourceIndex(0) +1->Emitted(122, 9) Source(24, 5) + SourceIndex(0) +2 >Emitted(122, 13) Source(24, 14) + SourceIndex(0) +3 >Emitted(122, 14) Source(24, 15) + SourceIndex(0) +4 >Emitted(122, 61) Source(24, 20) + SourceIndex(0) --- >>> static { >>> _C_y = { value: (__runInitializers(_classThis, _staticExtraInitializers), __runInitializers(_classThis, _static_private_y_initializers, 1)) }; @@ -856,13 +858,13 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 5 > 1 6 > 7 > = 1; -1 >Emitted(122, 13) Source(40, 12) + SourceIndex(0) -2 >Emitted(122, 30) Source(5, 7) + SourceIndex(0) -3 >Emitted(122, 85) Source(5, 8) + SourceIndex(0) -4 >Emitted(122, 149) Source(40, 17) + SourceIndex(0) -5 >Emitted(122, 150) Source(40, 18) + SourceIndex(0) -6 >Emitted(122, 154) Source(40, 14) + SourceIndex(0) -7 >Emitted(122, 155) Source(40, 19) + SourceIndex(0) +1 >Emitted(124, 13) Source(40, 12) + SourceIndex(0) +2 >Emitted(124, 30) Source(5, 7) + SourceIndex(0) +3 >Emitted(124, 85) Source(5, 8) + SourceIndex(0) +4 >Emitted(124, 149) Source(40, 17) + SourceIndex(0) +5 >Emitted(124, 150) Source(40, 18) + SourceIndex(0) +6 >Emitted(124, 154) Source(40, 14) + SourceIndex(0) +7 >Emitted(124, 155) Source(40, 19) + SourceIndex(0) --- >>> } >>> static { @@ -881,11 +883,11 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 3 > 1 4 > 5 > = 1; -1 >Emitted(125, 13) Source(44, 21) + SourceIndex(0) -2 >Emitted(125, 177) Source(44, 26) + SourceIndex(0) -3 >Emitted(125, 178) Source(44, 27) + SourceIndex(0) -4 >Emitted(125, 182) Source(44, 23) + SourceIndex(0) -5 >Emitted(125, 183) Source(44, 28) + SourceIndex(0) +1 >Emitted(127, 13) Source(44, 21) + SourceIndex(0) +2 >Emitted(127, 177) Source(44, 26) + SourceIndex(0) +3 >Emitted(127, 178) Source(44, 27) + SourceIndex(0) +4 >Emitted(127, 182) Source(44, 23) + SourceIndex(0) +5 >Emitted(127, 183) Source(44, 28) + SourceIndex(0) --- >>> } >>> constructor() { @@ -898,8 +900,8 @@ sourceFile:esDecorators-classDeclaration-sourceMap.ts 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1 > 2 > C -1 >Emitted(132, 13) Source(5, 7) + SourceIndex(0) -2 >Emitted(132, 68) Source(5, 8) + SourceIndex(0) +1 >Emitted(134, 13) Source(5, 7) + SourceIndex(0) +2 >Emitted(134, 68) Source(5, 8) + SourceIndex(0) --- >>> } >>> }; diff --git a/tests/baselines/reference/esDecorators-classDeclaration-staticName(target=es2022).js b/tests/baselines/reference/esDecorators-classDeclaration-staticName(target=es2022).js new file mode 100644 index 0000000000000..b113b73f44932 --- /dev/null +++ b/tests/baselines/reference/esDecorators-classDeclaration-staticName(target=es2022).js @@ -0,0 +1,157 @@ +//// [tests/cases/conformance/esDecorators/classDeclaration/esDecorators-classDeclaration-staticName.ts] //// + +//// [esDecorators-classDeclaration-staticName.ts] +declare let dec: any; + +@dec class A { + static get name() { return 123; } +} + +@dec class B { + static name() { return 456; } +} + +var C = @dec class { + static get name() { return 789; } +}; + +@dec class D {} + +@dec class E { + static name = "custom"; +} + + +//// [esDecorators-classDeclaration-staticName.js] +var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) { + function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; } + var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value"; + var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null; + var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {}); + var _, done = false; + for (var i = decorators.length - 1; i >= 0; i--) { + var context = {}; + for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p]; + for (var p in contextIn.access) context.access[p] = contextIn.access[p]; + context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); }; + var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context); + if (kind === "accessor") { + if (result === void 0) continue; + if (result === null || typeof result !== "object") throw new TypeError("Object expected"); + if (_ = accept(result.get)) descriptor.get = _; + if (_ = accept(result.set)) descriptor.set = _; + if (_ = accept(result.init)) initializers.unshift(_); + } + else if (_ = accept(result)) { + if (kind === "field") initializers.unshift(_); + else descriptor[key] = _; + } + } + if (target) Object.defineProperty(target, contextIn.name, descriptor); + done = true; +}; +var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) { + var useValue = arguments.length > 2; + for (var i = 0; i < initializers.length; i++) { + value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg); + } + return useValue ? value : void 0; +}; +var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { + if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; + return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); +}; +let A = (() => { + let _classDecorators = [dec]; + let _classDescriptor; + let _classExtraInitializers = []; + let _classThis; + var A = class { + static { _classThis = this; } + static { + const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0; + __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); + A = _classThis = _classDescriptor.value; + if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); + __runInitializers(_classThis, _classExtraInitializers); + } + static get name() { return 123; } + }; + return A = _classThis; +})(); +let B = (() => { + let _classDecorators = [dec]; + let _classDescriptor; + let _classExtraInitializers = []; + let _classThis; + var B = class { + static { _classThis = this; } + static { + const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0; + __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); + B = _classThis = _classDescriptor.value; + if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); + __runInitializers(_classThis, _classExtraInitializers); + } + static name() { return 456; } + }; + return B = _classThis; +})(); +var C = (() => { + let _classDecorators = [dec]; + let _classDescriptor; + let _classExtraInitializers = []; + let _classThis; + var class_1 = class { + static { _classThis = this; } + static { __setFunctionName(_classThis, "C"); } + static { + const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0; + __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); + class_1 = _classThis = _classDescriptor.value; + if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); + __runInitializers(_classThis, _classExtraInitializers); + } + static get name() { return 789; } + }; + return class_1 = _classThis; +})(); +let D = (() => { + let _classDecorators = [dec]; + let _classDescriptor; + let _classExtraInitializers = []; + let _classThis; + var D = class { + static { _classThis = this; } + static { + const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0; + __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); + D = _classThis = _classDescriptor.value; + if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); + __runInitializers(_classThis, _classExtraInitializers); + } + }; + return D = _classThis; +})(); +let E = (() => { + let _classDecorators = [dec]; + let _classDescriptor; + let _classExtraInitializers = []; + let _classThis; + var E = class { + static { _classThis = this; } + static { + const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0; + __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); + E = _classThis = _classDescriptor.value; + if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); + } + static name = "custom"; + static { + __runInitializers(_classThis, _classExtraInitializers); + } + }; + return E = _classThis; +})(); diff --git a/tests/baselines/reference/esDecorators-classDeclaration-staticName(target=esnext).js b/tests/baselines/reference/esDecorators-classDeclaration-staticName(target=esnext).js new file mode 100644 index 0000000000000..05dfe9bb853e8 --- /dev/null +++ b/tests/baselines/reference/esDecorators-classDeclaration-staticName(target=esnext).js @@ -0,0 +1,45 @@ +//// [tests/cases/conformance/esDecorators/classDeclaration/esDecorators-classDeclaration-staticName.ts] //// + +//// [esDecorators-classDeclaration-staticName.ts] +declare let dec: any; + +@dec class A { + static get name() { return 123; } +} + +@dec class B { + static name() { return 456; } +} + +var C = @dec class { + static get name() { return 789; } +}; + +@dec class D {} + +@dec class E { + static name = "custom"; +} + + +//// [esDecorators-classDeclaration-staticName.js] +@dec +class A { + static get name() { return 123; } +} +@dec +class B { + static name() { return 456; } +} +var C = +@dec +class { + static get name() { return 789; } +}; +@dec +class D { +} +@dec +class E { + static name = "custom"; +} diff --git a/tests/baselines/reference/esDecoratorsClassFieldsCrash.js b/tests/baselines/reference/esDecoratorsClassFieldsCrash.js index 99869d7b5f1d1..2a85fb1098f6d 100644 --- a/tests/baselines/reference/esDecoratorsClassFieldsCrash.js +++ b/tests/baselines/reference/esDecoratorsClassFieldsCrash.js @@ -54,6 +54,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; // https://github.com/microsoft/TypeScript/issues/58436 diff --git a/tests/baselines/reference/esDecoratorsMetadata1(target=es2015).js b/tests/baselines/reference/esDecoratorsMetadata1(target=es2015).js index 6d142d2a4d8d7..e58af3f16a126 100644 --- a/tests/baselines/reference/esDecoratorsMetadata1(target=es2015).js +++ b/tests/baselines/reference/esDecoratorsMetadata1(target=es2015).js @@ -54,6 +54,8 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; function meta(key, value) { diff --git a/tests/baselines/reference/esDecoratorsMetadata2(target=es2015).js b/tests/baselines/reference/esDecoratorsMetadata2(target=es2015).js index c40e77507058f..0ea15d9321476 100644 --- a/tests/baselines/reference/esDecoratorsMetadata2(target=es2015).js +++ b/tests/baselines/reference/esDecoratorsMetadata2(target=es2015).js @@ -62,6 +62,8 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; function meta(key, value) { diff --git a/tests/baselines/reference/esDecoratorsMetadata3(target=es2015).js b/tests/baselines/reference/esDecoratorsMetadata3(target=es2015).js index f0d3e6727ca67..e38de56908afc 100644 --- a/tests/baselines/reference/esDecoratorsMetadata3(target=es2015).js +++ b/tests/baselines/reference/esDecoratorsMetadata3(target=es2015).js @@ -57,6 +57,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; function appendMeta(key, value) { diff --git a/tests/baselines/reference/esDecoratorsMetadata4(target=es2015).js b/tests/baselines/reference/esDecoratorsMetadata4(target=es2015).js index bad3be6e96a61..7a0c442e720c0 100644 --- a/tests/baselines/reference/esDecoratorsMetadata4(target=es2015).js +++ b/tests/baselines/reference/esDecoratorsMetadata4(target=es2015).js @@ -63,6 +63,8 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; const PRIVATE_METADATA = new WeakMap(); diff --git a/tests/baselines/reference/privateFieldsInClassExpressionDeclaration.js b/tests/baselines/reference/privateFieldsInClassExpressionDeclaration.js index c801596e5ffab..0c00bb5575d4f 100644 --- a/tests/baselines/reference/privateFieldsInClassExpressionDeclaration.js +++ b/tests/baselines/reference/privateFieldsInClassExpressionDeclaration.js @@ -17,6 +17,8 @@ export const ClassExpressionStatic = class { //// [privateFieldsInClassExpressionDeclaration.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var _instances, _context, _method, _a, _b, _ClassExpressionStatic_staticPrivate, _ClassExpressionStatic_instancePrivate; diff --git a/tests/baselines/reference/privateNameFieldClassExpression.js b/tests/baselines/reference/privateNameFieldClassExpression.js index 334d63e8bb9f7..e5a8216b3a94f 100644 --- a/tests/baselines/reference/privateNameFieldClassExpression.js +++ b/tests/baselines/reference/privateNameFieldClassExpression.js @@ -19,6 +19,8 @@ class B { //// [privateNameFieldClassExpression.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var _B_foo, _B_foo2; diff --git a/tests/baselines/reference/privateNameStaticFieldClassExpression.js b/tests/baselines/reference/privateNameStaticFieldClassExpression.js index a39dd95d6a73f..d9b1c5d5aaab1 100644 --- a/tests/baselines/reference/privateNameStaticFieldClassExpression.js +++ b/tests/baselines/reference/privateNameStaticFieldClassExpression.js @@ -32,6 +32,8 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function ( }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var _a, _B_foo, _B_foo2, _b, _c; diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).js b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).js index 06cdca1bdd7ca..6cae5b8f5d215 100644 --- a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).js +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).js @@ -13,6 +13,8 @@ class C2 { //// [privateNameStaticFieldNoInitializer.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var _a, _C_x, _b, _C2_x; diff --git a/tests/baselines/reference/staticFieldWithInterfaceContext.js b/tests/baselines/reference/staticFieldWithInterfaceContext.js index c6b765a685e2b..c88ce3f904b7b 100644 --- a/tests/baselines/reference/staticFieldWithInterfaceContext.js +++ b/tests/baselines/reference/staticFieldWithInterfaceContext.js @@ -31,6 +31,8 @@ let [ c11 = class { static x = { a: "a" } } ]: I[] = [class { static x = { a: "a //// [staticFieldWithInterfaceContext.js] var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q; diff --git a/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassExpression.js b/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassExpression.js index 47c851a2a8ecb..435f31b98a70b 100644 --- a/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassExpression.js +++ b/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassExpression.js @@ -1,5 +1,7 @@ var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var _a; diff --git a/tests/baselines/reference/tscWatch/programUpdates/updates-diagnostics-and-emit-for-decorators.js b/tests/baselines/reference/tscWatch/programUpdates/updates-diagnostics-and-emit-for-decorators.js index c198a7d8878ce..50ed54f0659d8 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/updates-diagnostics-and-emit-for-decorators.js +++ b/tests/baselines/reference/tscWatch/programUpdates/updates-diagnostics-and-emit-for-decorators.js @@ -88,6 +88,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; import { B } from './b'; diff --git a/tests/baselines/reference/usingDeclarationsNamedEvaluationDecoratorsAndClassFields.js b/tests/baselines/reference/usingDeclarationsNamedEvaluationDecoratorsAndClassFields.js index 700a42f901acd..cfe6487f0320a 100644 --- a/tests/baselines/reference/usingDeclarationsNamedEvaluationDecoratorsAndClassFields.js +++ b/tests/baselines/reference/usingDeclarationsNamedEvaluationDecoratorsAndClassFields.js @@ -61,6 +61,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i }; var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) { if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : ""; + var d = Object.getOwnPropertyDescriptor(f, "name"); + if (d && d.writable !== false) return f; return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name }); }; var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) { diff --git a/tests/cases/conformance/esDecorators/classDeclaration/esDecorators-classDeclaration-staticName.ts b/tests/cases/conformance/esDecorators/classDeclaration/esDecorators-classDeclaration-staticName.ts new file mode 100644 index 0000000000000..d8f6d9c0a7842 --- /dev/null +++ b/tests/cases/conformance/esDecorators/classDeclaration/esDecorators-classDeclaration-staticName.ts @@ -0,0 +1,23 @@ +// @target: esnext, es2022 +// @noEmitHelpers: false +// @noTypesAndSymbols: true + +declare let dec: any; + +@dec class A { + static get name() { return 123; } +} + +@dec class B { + static name() { return 456; } +} + +var C = @dec class { + static get name() { return 789; } +}; + +@dec class D {} + +@dec class E { + static name = "custom"; +}