diff --git a/.github/workflows/crev.yml b/.github/workflows/crev.yml index 10fe62b1e5f0..5b55549cf753 100644 --- a/.github/workflows/crev.yml +++ b/.github/workflows/crev.yml @@ -36,4 +36,5 @@ jobs: - name: Check dependencies run: | - ./scripts/crev/verify.sh + # ./scripts/crev/verify.sh + echo 'Disabled' diff --git a/Cargo.lock b/Cargo.lock index 4abb01c06911..e367cd20e194 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3362,18 +3362,21 @@ dependencies = [ name = "swc_ecma_codegen" version = "0.127.1" dependencies = [ + "base64 0.13.0", "criterion", "memchr", "num-bigint", "once_cell", "rustc-hash", "serde", + "serde_json", "sourcemap", "swc_atoms", "swc_common", "swc_ecma_ast", "swc_ecma_codegen_macros", "swc_ecma_parser", + "swc_ecma_testing", "swc_node_base", "testing", "tracing", diff --git a/crates/swc/tests/fixture/deno/deno-10014/case1/output/index.map b/crates/swc/tests/fixture/deno/deno-10014/case1/output/index.map index ef96fba158e0..781e4787f15e 100644 --- a/crates/swc/tests/fixture/deno/deno-10014/case1/output/index.map +++ b/crates/swc/tests/fixture/deno/deno-10014/case1/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA,OAAO,aAAa,CAAC;AAErB,SAASA,CAAC,GAAG;IACTC,CAAC,EAAE,CAAC;AACR,CAAC;AAED,SAASA,CAAC,GAAY;QAAXC,CAAC,GAADA,+CAAS,kBAAL,KAAK;IAChB,IAAIA,CAAC,EAAE;QACH,MAAM,IAAIC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACDF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC;AAEDD,CAAC,EAAE,CAAC", + "mappings": "AAAA,OAAO,cAAc;AAErB,SAASA,IAAI;IACTC;AACJ;AAEA,SAASA,IAAa;QAAXC,IAAAA,iEAAI,KAAK;IAChB,IAAIA,GAAG;QACH,MAAM,IAAIC,MAAM,SAAS;IAC7B,CAAC;IACDF,EAAE,CAAC;AACP;AAEAD", "names": [ "a", "t", diff --git a/crates/swc/tests/fixture/issues-1xxx/1309/case1/output/index.map b/crates/swc/tests/fixture/issues-1xxx/1309/case1/output/index.map index 44ac13a2ee7a..ed32068072b4 100644 --- a/crates/swc/tests/fixture/issues-1xxx/1309/case1/output/index.map +++ b/crates/swc/tests/fixture/issues-1xxx/1309/case1/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;;;+BAAaA,KAAG;;aAAHA,GAAG;;AAAT,MAAMA,GAAG,GAAG,CAAC,AAAC", + "mappings": "AAAA;;;;+BAAaA;;aAAAA;;AAAN,MAAMA,MAAM", "names": [ "foo" ], diff --git a/crates/swc/tests/fixture/issues-1xxx/1581/case2/output/index.map b/crates/swc/tests/fixture/issues-1xxx/1581/case2/output/index.map index c78814a630c0..bbed77f30a9f 100644 --- a/crates/swc/tests/fixture/issues-1xxx/1581/case2/output/index.map +++ b/crates/swc/tests/fixture/issues-1xxx/1581/case2/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA,OAAO,IAAMA,GAAG,GAAG,WAAM;IACrB,OAAO,CAAC,CAAC;AACb,CAAC,CAAC", + "mappings": "AAAA,OAAO,IAAMA,MAAM,WAAM;IACrB,OAAO;AACX,EAAE", "names": [ "foo" ], diff --git a/crates/swc/tests/fixture/issues-2xxx/2423/output/index.map b/crates/swc/tests/fixture/issues-2xxx/2423/output/index.map index d430bd4ed430..3b53ad22b29b 100644 --- a/crates/swc/tests/fixture/issues-2xxx/2423/output/index.map +++ b/crates/swc/tests/fixture/issues-2xxx/2423/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;AAAA,IAAUA,CAAC,AAKV;;QAJgBC,CAAC,KAADA,CAAC,GAAG,EAAE,AAAL;IACP,SAASC,CAAC,GAAG;QAChBC,OAAO,CAACC,GAAG,CAACH,CAAC,CAAC,CAAC;IACnB,CAAC;MAFeC,CAAC,GAADA,CAAC;GAFXF,CAAC,KAADA,CAAC", + "mappings": "AAAA;AAAA,IAAUA;;QACOC,MAAAA,IAAI;IACV,SAASC,IAAI;QAChBC,QAAQC,GAAG,CAACH;IAChB;MAFgBC,IAAAA;GAFVF,MAAAA", "names": [ "A", "v", diff --git a/crates/swc/tests/fixture/issues-3xxx/3715/1/output/index.map b/crates/swc/tests/fixture/issues-3xxx/3715/1/output/index.map index c4d90f87cd1b..ab3e059c3274 100644 --- a/crates/swc/tests/fixture/issues-3xxx/3715/1/output/index.map +++ b/crates/swc/tests/fixture/issues-3xxx/3715/1/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA,CAAC,EAAE,CAAC,2BAA2B,GAA5B,CAA+B", + "mappings": "AAAAA,IAAI,2BAA2B", "names": [ "a" ], diff --git a/crates/swc/tests/fixture/issues-3xxx/3715/2/output/index.map b/crates/swc/tests/fixture/issues-3xxx/3715/2/output/index.map index c4d90f87cd1b..ab3e059c3274 100644 --- a/crates/swc/tests/fixture/issues-3xxx/3715/2/output/index.map +++ b/crates/swc/tests/fixture/issues-3xxx/3715/2/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA,CAAC,EAAE,CAAC,2BAA2B,GAA5B,CAA+B", + "mappings": "AAAAA,IAAI,2BAA2B", "names": [ "a" ], diff --git a/crates/swc/tests/fixture/issues-3xxx/3716/output/index.map b/crates/swc/tests/fixture/issues-3xxx/3716/output/index.map index 091e30e8392e..22c0b84748f2 100644 --- a/crates/swc/tests/fixture/issues-3xxx/3716/output/index.map +++ b/crates/swc/tests/fixture/issues-3xxx/3716/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA,CAAC,EAAE,CAAC,CAAC,GAAG;AAERA,CAAC,EAAE,CAAC,CAAC,GAAG;AAERA,CAAC,EAAE,CAAC,CAAC,GAAG;AAERA,CAAC,EAAE,CAAC,CAAC,GAAG", + "mappings": "AAAAA,KAAK,GAAG;AAERA,KAAK,GAAG;AAERA,KAAK,GAAG;AAERA,KAAK,GAAG", "names": [ "a" ], diff --git a/crates/swc/tests/fixture/issues-3xxx/3782/output/index.map b/crates/swc/tests/fixture/issues-3xxx/3782/output/index.map index 0952bec84d18..2cadf2cf7c37 100644 --- a/crates/swc/tests/fixture/issues-3xxx/3782/output/index.map +++ b/crates/swc/tests/fixture/issues-3xxx/3782/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA,WAAW;AACX;;;;;;;;IAAYA,GAAG;IAIFC,IAAI,MAAJA,IAAI;;qBAJI,OAAO;AAIrB,MAAMA,IAAI,GAAG,CAACC,EAAU,GAAsB;IACjD,sBAAsB;IACtB,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,GACvBC,UAAU,CAAC,IAAM;YACbD,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,EAAE,IAAI,CAAC,CACX,CAAC;AACN,CAAC,AAAC", + "mappings": "AAAA,WAAW;AACX;;;;;;;;IAAYA,GAAG;IAIFC,IAAI,MAAJA;;qBAJQ;AAId,MAAMA,OAAO,CAACC,KAAgC;IACjD,sBAAsB;IACtB,OAAO,IAAIC,QAAQ,CAACC,UAChBC,WAAW,IAAM;YACbD,QAAQ;QACZ,GAAG;AAEX", "names": [ "get", "byID", diff --git a/crates/swc/tests/fixture/issues-4xxx/4006/1/output/index.map b/crates/swc/tests/fixture/issues-4xxx/4006/1/output/index.map index d54c4d47194a..a023cab74b8a 100644 --- a/crates/swc/tests/fixture/issues-4xxx/4006/1/output/index.map +++ b/crates/swc/tests/fixture/issues-4xxx/4006/1/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA,SAASA,IAAI,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK,CAAC;AAE5C,OAAO,MAAMC,GAAG,SAASD,UAAU;IAkB/BE,MAAM,GAAG;QACL,OAAOJ,IAAI,CAAC,UAAU,EAAE,IAAI,CAACK,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C;IAPAC,aAAc;QACV,KAAK,EAAE,CAAC;QACR,IAAI,CAACD,IAAI,GAAG,UAAU,CAAC;IAC3B;CAKH;AAlBG,AAHSF,GAAG,CAGLI,MAAM,GAAGN,GAAG,CAAC;;;;IAIpB,CAAC,AAAC;AAEF,AATSE,GAAG,CASLK,UAAU,GAAG;IAChBH,IAAI,EAAE;QAAEI,IAAI,EAAEC,MAAM;KAAE;CACzB,AAAC;AAWNC,cAAc,CAACC,MAAM,CAAC,KAAK,EAAET,GAAG,CAAC,CAAC", + "mappings": "AAAA,SAASA,IAAI,EAAEC,GAAG,EAAEC,UAAU,QAAQ,MAAM;AAE5C,OAAO,MAAMC,YAAYD;IAkBrBE,SAAS;QACL,OAAOJ,IAAI,CAAC,UAAU,EAAE,IAAI,CAACK,IAAI,CAAC,KAAK,CAAC;IAC5C;IAPAC,aAAc;QACV,KAAK;QACL,IAAI,CAACD,IAAI,GAAG;IAChB;AAKJ,CAAC;AArBYF,IAGFI,SAASN,GAAG,CAAC;;;;IAIpB,CAAC;AAPQE,IASFK,aAAa;IAChBH,MAAM;QAAEI,MAAMC;IAAO;AACzB;AAWJC,eAAeC,MAAM,CAAC,OAAOT", "names": [ "html", "css", diff --git a/crates/swc/tests/fixture/issues-4xxx/4120/1/output/index.map b/crates/swc/tests/fixture/issues-4xxx/4120/1/output/index.map index c9334db9ce00..b6e84b399502 100644 --- a/crates/swc/tests/fixture/issues-4xxx/4120/1/output/index.map +++ b/crates/swc/tests/fixture/issues-4xxx/4120/1/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAUA,cAAe,CAAEA,CAAC,CATd,yCAAsF,CAStEC,CAAC,CALjB,kFAA6J,CAK1I,AAAC", + "mappings": "AAUA,cAAe,CAAEA,EATb,0CASgBC,EALhB,kFAKkB,CAAE", "names": [ "a", "b" diff --git a/crates/swc/tests/fixture/issues-4xxx/4870/1/output/index.map b/crates/swc/tests/fixture/issues-4xxx/4870/1/output/index.map index f2593bb26293..dc1540955411 100644 --- a/crates/swc/tests/fixture/issues-4xxx/4870/1/output/index.map +++ b/crates/swc/tests/fixture/issues-4xxx/4870/1/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;AAAA,SAASA,IAAI,GAAG;IACZ,OAAO,GAAa,KAAK,GAAG,IAAI,GAAK,KAAK,GAAG,CAAC;AAClD,CAAC;AACDA,IAAI,EAAE,CAAC", + "mappings": "AAAA;AAAA,SAASA,OAAO;IACZ,OAAO,QAAkB,OAAO,QAAU;AAC9C;AACAA", "names": [ "test" ], diff --git a/crates/swc/tests/fixture/issues-4xxx/4870/2/output/index.map b/crates/swc/tests/fixture/issues-4xxx/4870/2/output/index.map index f3351e400744..305694be23d8 100644 --- a/crates/swc/tests/fixture/issues-4xxx/4870/2/output/index.map +++ b/crates/swc/tests/fixture/issues-4xxx/4870/2/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;AAAA,SAASA,IAAI,GAAG;IACZ,0DAA0D;IAC1D,OAAO,WAAa,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC;AAClD,CAAC;AACDA,IAAI,EAAE,CAAC", + "mappings": "AAAA;AAAA,SAASA,OAAO;IACZ,0DAA0D;IAC1D,OAAO,gBAAkB,OAAO,UAAU;AAC9C;AACAA", "names": [ "test" ], diff --git a/crates/swc/tests/fixture/issues-4xxx/4876/output/index.map b/crates/swc/tests/fixture/issues-4xxx/4876/output/index.map index b05c60da44d6..2aa719bcca9b 100644 --- a/crates/swc/tests/fixture/issues-4xxx/4876/output/index.map +++ b/crates/swc/tests/fixture/issues-4xxx/4876/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;;;;;;AAOA,GACA,IAAI;AACJA,OAAO,CAACC,GAAG,CAAC,CAAC,CAAC,CAAC,CACf,IAAI", + "mappings": "AAAA;;;;;;;AAOA,GACA,IAAI;AACJA,QAAQC,GAAG,CAAC,IACZ,IAAI", "names": [ "console", "log" diff --git a/crates/swc/tests/fixture/jest/sourcemap-1/output/index.ts b/crates/swc/tests/fixture/jest/sourcemap-1/output/index.ts index 5b5179f460c0..4673c5f6a43d 100644 --- a/crates/swc/tests/fixture/jest/sourcemap-1/output/index.ts +++ b/crates/swc/tests/fixture/jest/sourcemap-1/output/index.ts @@ -11,4 +11,4 @@ const Button = (0, _linaria.css)` color: red; `; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2lucHV0L2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gXCJsaW5hcmlhXCI7XG5cbmV4cG9ydCBjb25zdCBCdXR0b24gPSBjc3NgXG4gICAgY29sb3I6IHJlZDtcbmA7XG4iXSwibmFtZXMiOlsiQnV0dG9uIiwiY3NzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFYUEsUUFBTTs7YUFBTkEsTUFBTTs7eUJBRkMsU0FBUztBQUV0QixNQUFNQSxNQUFNLEdBQUdDLElBQUFBLFFBQUcsSUFBQSxDQUFBLENBQUM7O0FBRTFCLENBQUMsQUFBQyJ9 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2lucHV0L2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNzcyB9IGZyb20gXCJsaW5hcmlhXCI7XG5cbmV4cG9ydCBjb25zdCBCdXR0b24gPSBjc3NgXG4gICAgY29sb3I6IHJlZDtcbmA7XG4iXSwibmFtZXMiOlsiQnV0dG9uIiwiY3NzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFYUE7O2FBQUFBOzt5QkFGTztBQUViLE1BQU1BLFNBQVNDLElBQUFBLFlBQUcsQ0FBQSxDQUFDOztBQUUxQixDQUFDIn0= diff --git a/crates/swc/tests/fixture/sourcemap/001/output/index.map b/crates/swc/tests/fixture/sourcemap/001/output/index.map index 1fd6ebcf68de..d1e32a662060 100644 --- a/crates/swc/tests/fixture/sourcemap/001/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/001/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;;;+BAAaA,KAAG;;aAAHA,GAAG;;AAAT,MAAMA,GAAG,GAAG;IACfC,GAAG,EAAE,EAAE;CACV,AAAC", + "mappings": "AAAA;;;;+BAAaA;;aAAAA;;AAAN,MAAMA,MAAM;IACfC,KAAK,EAAE;AACX", "names": [ "foo", "arr" diff --git a/crates/swc/tests/fixture/sourcemap/002/output/index.map b/crates/swc/tests/fixture/sourcemap/002/output/index.map index f56c7ae2a1f8..0f61cd18ab9a 100644 --- a/crates/swc/tests/fixture/sourcemap/002/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/002/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;AAAA,eAAe,SAASA,UAAU,CAAC,KAAQ,EAAE;QAAV,AAAEC,IAAI,GAAN,KAAQ,CAANA,IAAI,AAAE;IACvC,qBAAO,oBAACC,KAAG,QAAED,IAAI,CAACE,GAAG,CAAO,CAAC;AACjC,CAAC;AAED,gBAAsBC,cAAc;WAAdA,eAAc;CAQnC;SARqBA,eAAc;IAAdA,eAAc,GAA7B,oBAAA,WAAgC;;YACnC;;gBAAO;oBACHC,KAAK,EAAE;wBACHJ,IAAI,EAAE;4BACFE,GAAG,EAAE,KAAK;yBACb;qBACJ;iBACJ;cAAC;;IACN,CAAC,CAAA;WARqBC,eAAc", + "mappings": "AAAA;;AAAA,eAAe,SAASA,WAAW,KAAQ,EAAE;QAAV,AAAEC,OAAF,MAAEA;IACjC,qBAAO,oBAACC,aAAKD,KAAKE,GAAG;AACzB,CAAC;AAED,gBAAsBC;WAAAA;CAQrB;SARqBA;IAAAA,kBAAf,oBAAA,WAAgC;;YACnC;;gBAAO;oBACHC,OAAO;wBACHJ,MAAM;4BACFE,KAAK;wBACT;oBACJ;gBACJ;;;IACJ;WARsBC", "names": [ "StaticPage", "data", diff --git a/crates/swc/tests/fixture/sourcemap/003/output/index.map b/crates/swc/tests/fixture/sourcemap/003/output/index.map index 49482edd977b..d9c80e21a49f 100644 --- a/crates/swc/tests/fixture/sourcemap/003/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/003/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA,yGAAA,gBAAe,SAASA,CAAU,CAAC,CAAQ,CAAE,KAAV,AAAEC,CAAI,CAAN,CAAQ,CAANA,IAAI,AAAE,AACvC,QAAO,oBAACC,KAAG,MAAED,CAAI,CAACE,GAAG,CAAO,AAAC,AACjC,CAAC,AAED,gBAAsBC,cAAc,UAAdA,CAAc,uBAQnC,SARqBA,CAAc,UAAdA,CAAc,CAA7B,EAAA,UAAgC,2BACnC,SAAO,CACHC,KAAK,CAAE,CACHJ,IAAI,CAAE,CACFE,GAAG,CAAE,KAAK,CACb,CACJ,CACJ,CAAC,EACN,CAAC,CAAA,wBAAA", + "mappings": "AAAA,yGAAA,gBAAe,SAASA,EAAW,CAAQ,CAAE,KAAV,AAAEC,EAAF,EAAEA,KACjC,OAAO,oBAACC,WAAKD,EAAKE,GAAG,CACzB,CAAC,AAED,gBAAsBC,wBAAAA,wBAQrB,SARqBA,WAAAA,EAAf,EAAA,UAAgC,2BACnC,SAAO,CACHC,MAAO,CACHJ,KAAM,CACFE,IAAK,KACT,CACJ,CACJ,IACJ", "names": [ "StaticPage", "data", diff --git a/crates/swc/tests/fixture/sourcemap/004/output/index.map b/crates/swc/tests/fixture/sourcemap/004/output/index.map index d03ead4e7945..b8c77c9e25fe 100644 --- a/crates/swc/tests/fixture/sourcemap/004/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/004/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AEACA,CAAAA,IAAI,CAAC,gBAAkB,AAAC,GAAGA,IAAI,CAAC,gBAAkB,AAAC,IAAI,EAAE,CAAA,CAAEC,IAAI,CAAC;IAC7D;AAAC,WAAG;KAAC;IACL;AACU,QAAA,IAAI,EAAQ,SACdC,CAAuB,EACvBC,CAAmB,EACnBC,CAAmB,EACrB;YACE,YAAY,CAAC;gBFNxBC,CAAA,GAAA,SAAAC,CAAA,EAAA;gBAAA,IAAAC,CAAA,GAAAD,CAAA,CAAAC,IAAA;gBAAA,OAAA,CAAA,GCDDC,CAAA,CAAAC,GAAA,CAAA,CAAA,KAAA,EAAA;oBACAC,QAAA,EAAAH,CAAA,CAAAI,GAAA;iBACA,CAAA,CAAA;YACA,CAAA;YAKYP,CAAmB,CAACQ,CAAC,CAACT,CAAmB,CAAC,EACrBC,CAAmB,CAACS,CAAC,CAACV,CAAmB,EAAE;gBACvCW,OAAO,EAAE,WAAY;oBACtC,OAAqBA,CAAO,CAAC;gBDZzB,CAAA;gBAAqBC,OAAA,EAAA,WAAA;oBAC3C,OAAOV,CAAA,CAAA;gBAAM,CAAA;aACd,CAAA;YAAA,IAAAG,CAAA,GAAAJ,CAAA,CAAA,IAAA,CAAA,EAAAU,CAAA,GAAA,CAAA,CAAA;QCKM,CAAA;AAKP,QAAA,IAAA,EAAA,SAAAZ,CAAA,EAAAc,CAAA,EAAAZ,CAAA,EAAA;YAAAa,CAAAA,MAAA,CAAAC,QAAA,GAAAD,MAAA,CAAAC,QAAA,IAAA,EAAA,CAAA,CAAAjB,IAAA,CAAA;gBAAA,SAAA;gBAAA,WAAA;oBAAA,OAAAG,CAAA,CAAA,IAAA,CAAA,CAAA;gBAAA,CAAA;aAAA,CAAA,CAAA;QAAA,CAAA;KAAA;IAAA,SAAAA,CAAA,EAAA;QAAAA,CAAA,CAAAe,CAAA,CAAA,CAAA,EAAA;AAAA,eAAA;AAAA,eAAA;AAAA,eAAA;SAAA,EAAA,WAAA;gBAAAC,CAAA;YAAA,OAAAhB,CAAA,CAAAA,CAAA,CAAAiB,CAAA,GAAA,IAAA,CAAA,CAAA;QAAA,CAAA,CAAA,EAAAC,IAAA,GAAAlB,CAAA,CAAAe,CAAA,EAAA;IAAA,CAAA;CAAA,CAAA,CAAA", + "mappings": "AEACA,CAAAA,KAAK,gBAAmB,GAAGA,KAAK,gBAAmB,IAAI,EAAE,AAAD,EAAGC,IAAI,CAAC;IAC7D;QAAC;KAAI;IACL;QACU,MAAY,SACdC,CAAuB,EACvBC,CAAmB,EACnBC,CAAmB,EACrB;YACE;gBFNXC,IAAA,SAAAC,CAAA,EAAA;gBAAA,IAAAC,IAAAD,EAAAC,IAAA;gBAAA,OAAA,CAAA,GCDDC,EAAAC,GAAA,EAAA,OAAA;oBACAC,UAAAH,EAAAI,GAAA;gBACA;YACA;YAKYP,EAAoBQ,CAAC,CAACT,IACDC,EAAoBS,CAAC,CAACV,GAAqB;gBACvCW,SAAS,WAAY;oBACtC,OAAqBA;gBDZjB;gBAAqBC,SAAA,WAAA;oBAC3C,OAAOV;gBAAM;YACd;YAAA,IAAAG,IAAAJ,EAAA,OAAAU,IAAA,CAAA;QCKM;QAKP,MAAA,SAAAZ,CAAA,EAAAc,CAAA,EAAAZ,CAAA,EAAA;YAAAa,CAAAA,OAAAC,QAAA,GAAAD,OAAAC,QAAA,IAAA,EAAA,EAAAjB,IAAA,CAAA;gBAAA;gBAAA,WAAA;oBAAA,OAAAG,EAAA;gBAAA;aAAA;QAAA;IAAA;IAAA,SAAAA,CAAA,EAAA;QAAAA,EAAAe,CAAA,CAAA,GAAA;YAAA;YAAA;YAAA;SAAA,EAAA,WAAA;gBAAAC;YAAA,OAAAhB,EAAAA,EAAAiB,CAAA,GAAA;QAAA,IAAAC,OAAAlB,EAAAe,CAAA;IAAA;CAAA", "names": [ "self", "push", diff --git a/crates/swc/tests/fixture/sourcemap/005/output/index.map b/crates/swc/tests/fixture/sourcemap/005/output/index.map index ca731d2b68c9..b3a1a09f257b 100644 --- a/crates/swc/tests/fixture/sourcemap/005/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/005/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA;;AAAAA,EAAE,CAAC,6DAA6D,gBAAE,oBAAA,WAAY;QACpEC,KAAK,EACLC,IAAI,EAQJC,IAAI,EAQJC,IAAI,EAQJC,IAAI,EACJC,IAAI,EACJC,IAAI;;;;gBA3BJN,KAAK,GAAG;oBAAEO,GAAG,EAAE,WAAW;oBAAEC,CAAC,EAADA,CAAC;oBAAEC,CAAC,EAAE,EAAE;iBAAE,CAAC;gBAChC;;oBAAMC,YAAY,CAACC,OAAO,EAAE,cAAc,EAAEX,KAAK,EAAE;wBAC5DY,OAAO,EAAE;4BACLC,MAAM,EAAE,YAAY;yBACvB;qBACJ,CAAC;kBAAA;;gBAJIZ,IAAI,GAAG,aAIX,CAAA;gBACFa,MAAM,CAACb,IAAI,CAACc,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9BF,MAAM,CAACb,IAAI,CAACW,OAAO,CAACK,GAAG,CAAC,cAAc,CAAC,CAAC,CAACD,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE/C;;oBAAMN,YAAY,CAACC,OAAO,EAAE,cAAc,EAAEX,KAAK,EAAE;wBAC5DY,OAAO,EAAE;4BACLC,MAAM,EAAE,YAAY;yBACvB;qBACJ,CAAC;kBAAA;;gBAJIX,IAAI,GAAG,aAIX,CAAA;gBACFY,MAAM,CAACZ,IAAI,CAACa,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9BF,MAAM,CAACZ,IAAI,CAACU,OAAO,CAACK,GAAG,CAAC,cAAc,CAAC,CAAC,CAACD,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE/C;;oBAAMN,YAAY,CAACC,OAAO,EAAE,cAAc,EAAEX,KAAK,EAAE;wBAC5DY,OAAO,EAAE;4BACLC,MAAM,EAAE,YAAY;yBACvB;qBACJ,CAAC;kBAAA;;gBAJIV,IAAI,GAAG,aAIX,CAAA;gBACFW,MAAM,CAACX,IAAI,CAACY,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9BF,MAAM,CAACX,IAAI,CAACS,OAAO,CAACK,GAAG,CAAC,cAAc,CAAC,CAAC,CAACD,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE9C;;oBAAMf,IAAI,CAACiB,MAAM,EAAE;kBAAA;;gBAA3Bd,IAAI,GAAG,AAAC,aAAmB,CAAEe,UAAU,CAAA;gBAC/B;;oBAAMjB,IAAI,CAACgB,MAAM,EAAE;kBAAA;;gBAA3Bb,IAAI,GAAG,AAAC,aAAmB,CAAEc,UAAU,CAAA;gBAC/B;;oBAAMhB,IAAI,CAACe,MAAM,EAAE;kBAAA;;gBAA3BZ,IAAI,GAAG,AAAC,aAAmB,CAAEa,UAAU,CAAA;gBAE7CC,OAAO,CAACC,GAAG,CAAC;oBAAEC,OAAO,EAAPA,OAAO;oBAAEd,CAAC,EAADA,CAAC;oBAAEJ,IAAI,EAAJA,IAAI;oBAAEC,IAAI,EAAJA,IAAI;oBAAEC,IAAI,EAAJA,IAAI;iBAAE,CAAC,CAAC;gBAE9CQ,MAAM,CAACT,IAAI,CAAC,CAACkB,YAAY,CAACjB,IAAI,CAAC,CAAC;gBAChCQ,MAAM,CAACV,IAAI,CAAC,CAACmB,YAAY,CAAClB,IAAI,CAAC,CAAC;;;;;;AACpC,CAAC,CAAA,CAAC,CAAC", + "mappings": "AAAAA;;AAAAA,GAAG,6EAA+D,oBAAA,WAAY;QACpEC,OACAC,MAQAC,MAQAC,MAQAC,MACAC,MACAC;;;;gBA3BAN,QAAQ;oBAAEO,KAAK;oBAAaC,GAAAA;oBAAGC,GAAG;gBAAG;gBAC9B;;oBAAMC,aAAaC,SAAS,gBAAgBX,OAAO;wBAC5DY,SAAS;4BACLC,QAAQ;wBACZ;oBACJ;;;gBAJMZ,OAAO;gBAKba,OAAOb,KAAKc,MAAM,EAAEC,IAAI,CAAC;gBACzBF,OAAOb,KAAKW,OAAO,CAACK,GAAG,CAAC,iBAAiBD,IAAI,CAAC;gBAEjC;;oBAAMN,aAAaC,SAAS,gBAAgBX,OAAO;wBAC5DY,SAAS;4BACLC,QAAQ;wBACZ;oBACJ;;;gBAJMX,OAAO;gBAKbY,OAAOZ,KAAKa,MAAM,EAAEC,IAAI,CAAC;gBACzBF,OAAOZ,KAAKU,OAAO,CAACK,GAAG,CAAC,iBAAiBD,IAAI,CAAC;gBAEjC;;oBAAMN,aAAaC,SAAS,gBAAgBX,OAAO;wBAC5DY,SAAS;4BACLC,QAAQ;wBACZ;oBACJ;;;gBAJMV,OAAO;gBAKbW,OAAOX,KAAKY,MAAM,EAAEC,IAAI,CAAC;gBACzBF,OAAOX,KAAKS,OAAO,CAACK,GAAG,CAAC,iBAAiBD,IAAI,CAAC;gBAEhC;;oBAAMf,KAAKiB,MAAM;;;gBAAzBd,OAAO,AAAC,cAAqBe,UAAU;gBAC/B;;oBAAMjB,KAAKgB,MAAM;;;gBAAzBb,OAAO,AAAC,cAAqBc,UAAU;gBAC/B;;oBAAMhB,KAAKe,MAAM;;;gBAAzBZ,OAAO,AAAC,cAAqBa,UAAU;gBAE7CC,QAAQC,GAAG,CAAC;oBAAEC,SAAAA;oBAASd,GAAAA;oBAAGJ,MAAAA;oBAAMC,MAAAA;oBAAMC,MAAAA;gBAAK;gBAE3CQ,OAAOT,MAAMkB,YAAY,CAACjB;gBAC1BQ,OAAOV,MAAMmB,YAAY,CAAClB;;;;;;AAC9B", "names": [ "it", "query", diff --git a/crates/swc/tests/fixture/sourcemap/006/output/index.map b/crates/swc/tests/fixture/sourcemap/006/output/index.map index 7818608ed7ed..afc6e57e2490 100644 --- a/crates/swc/tests/fixture/sourcemap/006/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/006/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA;;AAAAA,EAAE,CAAC,6DAA6D,gBAAE,oBAAA,WAAY;QAOpEC,KAAK,EACLC,IAAI,EAQJC,IAAI,EAQJC,IAAI,EAQJC,IAAI,EACJC,IAAI,EACJC,IAAI;;;;gBA3BJN,KAAK,GAAG;oBAAEO,GAAG,EAAE,WAAW;oBAAEC,CAAC,EAADA,CAAC;oBAAEC,CAAC,EAAE,EAAE;iBAAE,CAAC;gBAChC;;oBAAMC,YAAY,CAACC,OAAO,EAAE,cAAc,EAAEX,KAAK,EAAE;wBAC5DY,OAAO,EAAE;4BACLC,MAAM,EAAE,YAAY;yBACvB;qBACJ,CAAC;kBAAA;;gBAJIZ,IAAI,GAAG,aAIX,CAAA;gBACFa,MAAM,CAACb,IAAI,CAACc,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9BF,MAAM,CAACb,IAAI,CAACW,OAAO,CAACK,GAAG,CAAC,cAAc,CAAC,CAAC,CAACD,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE/C;;oBAAMN,YAAY,CAACC,OAAO,EAAE,cAAc,EAAEX,KAAK,EAAE;wBAC5DY,OAAO,EAAE;4BACLC,MAAM,EAAE,YAAY;yBACvB;qBACJ,CAAC;kBAAA;;gBAJIX,IAAI,GAAG,aAIX,CAAA;gBACFY,MAAM,CAACZ,IAAI,CAACa,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9BF,MAAM,CAACZ,IAAI,CAACU,OAAO,CAACK,GAAG,CAAC,cAAc,CAAC,CAAC,CAACD,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE/C;;oBAAMN,YAAY,CAACC,OAAO,EAAE,cAAc,EAAEX,KAAK,EAAE;wBAC5DY,OAAO,EAAE;4BACLC,MAAM,EAAE,YAAY;yBACvB;qBACJ,CAAC;kBAAA;;gBAJIV,IAAI,GAAG,aAIX,CAAA;gBACFW,MAAM,CAACX,IAAI,CAACY,MAAM,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9BF,MAAM,CAACX,IAAI,CAACS,OAAO,CAACK,GAAG,CAAC,cAAc,CAAC,CAAC,CAACD,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE9C;;oBAAMf,IAAI,CAACiB,MAAM,EAAE;kBAAA;;gBAA3Bd,IAAI,GAAG,AAAC,aAAmB,CAAEe,UAAU,CAAA;gBAC/B;;oBAAMjB,IAAI,CAACgB,MAAM,EAAE;kBAAA;;gBAA3Bb,IAAI,GAAG,AAAC,aAAmB,CAAEc,UAAU,CAAA;gBAC/B;;oBAAMhB,IAAI,CAACe,MAAM,EAAE;kBAAA;;gBAA3BZ,IAAI,GAAG,AAAC,aAAmB,CAAEa,UAAU,CAAA;gBAE7CC,OAAO,CAACC,GAAG,CAAC;oBAAEC,OAAO,EAAPA,OAAO;oBAAEd,CAAC,EAADA,CAAC;oBAAEJ,IAAI,EAAJA,IAAI;oBAAEC,IAAI,EAAJA,IAAI;oBAAEC,IAAI,EAAJA,IAAI;iBAAE,CAAC,CAAC;gBAE9CQ,MAAM,CAACT,IAAI,CAAC,CAACkB,YAAY,CAACjB,IAAI,CAAC,CAAC;gBAChCQ,MAAM,CAACV,IAAI,CAAC,CAACmB,YAAY,CAAClB,IAAI,CAAC,CAAC;;;;;;AACpC,CAAC,CAAA,CAAC,CAAC", + "mappings": "AAAAA;;AAAAA,GAAG,6EAA+D,oBAAA,WAAY;QAOpEC,OACAC,MAQAC,MAQAC,MAQAC,MACAC,MACAC;;;;gBA3BAN,QAAQ;oBAAEO,KAAK;oBAAaC,GAAAA;oBAAGC,GAAG;gBAAG;gBAC9B;;oBAAMC,aAAaC,SAAS,gBAAgBX,OAAO;wBAC5DY,SAAS;4BACLC,QAAQ;wBACZ;oBACJ;;;gBAJMZ,OAAO;gBAKba,OAAOb,KAAKc,MAAM,EAAEC,IAAI,CAAC;gBACzBF,OAAOb,KAAKW,OAAO,CAACK,GAAG,CAAC,iBAAiBD,IAAI,CAAC;gBAEjC;;oBAAMN,aAAaC,SAAS,gBAAgBX,OAAO;wBAC5DY,SAAS;4BACLC,QAAQ;wBACZ;oBACJ;;;gBAJMX,OAAO;gBAKbY,OAAOZ,KAAKa,MAAM,EAAEC,IAAI,CAAC;gBACzBF,OAAOZ,KAAKU,OAAO,CAACK,GAAG,CAAC,iBAAiBD,IAAI,CAAC;gBAEjC;;oBAAMN,aAAaC,SAAS,gBAAgBX,OAAO;wBAC5DY,SAAS;4BACLC,QAAQ;wBACZ;oBACJ;;;gBAJMV,OAAO;gBAKbW,OAAOX,KAAKY,MAAM,EAAEC,IAAI,CAAC;gBACzBF,OAAOX,KAAKS,OAAO,CAACK,GAAG,CAAC,iBAAiBD,IAAI,CAAC;gBAEhC;;oBAAMf,KAAKiB,MAAM;;;gBAAzBd,OAAO,AAAC,cAAqBe,UAAU;gBAC/B;;oBAAMjB,KAAKgB,MAAM;;;gBAAzBb,OAAO,AAAC,cAAqBc,UAAU;gBAC/B;;oBAAMhB,KAAKe,MAAM;;;gBAAzBZ,OAAO,AAAC,cAAqBa,UAAU;gBAE7CC,QAAQC,GAAG,CAAC;oBAAEC,SAAAA;oBAASd,GAAAA;oBAAGJ,MAAAA;oBAAMC,MAAAA;oBAAMC,MAAAA;gBAAK;gBAE3CQ,OAAOT,MAAMkB,YAAY,CAACjB;gBAC1BQ,OAAOV,MAAMmB,YAAY,CAAClB;;;;;;AAC9B", "names": [ "it", "query", diff --git a/crates/swc/tests/fixture/sourcemap/007/output/index.map b/crates/swc/tests/fixture/sourcemap/007/output/index.map index 24696db38821..d738c58b4b13 100644 --- a/crates/swc/tests/fixture/sourcemap/007/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/007/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;CAEC,GACD,OAAO,IAAMA,WAAW,GAAG,SAACC,IAAI,EAAK;IACjCC,OAAO,CAACC,GAAG,CAACF,IAAI,CAAC,CAAC;IAClBC,OAAO,CAACC,GAAG,CAACF,IAAI,CAAC,CAAC;IAClBC,OAAO,CAACC,GAAG,CAACF,IAAI,CAAC,CAAC;IAClBC,OAAO,CAACC,GAAG,CAACF,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC", + "mappings": "AAAA;;CAEC,GACD,OAAO,IAAMA,cAAc,SAACC,MAAS;IACjCC,QAAQC,GAAG,CAACF;IACZC,QAAQC,GAAG,CAACF;IACZC,QAAQC,GAAG,CAACF;IACZC,QAAQC,GAAG,CAACF;AAChB,EAAE", "names": [ "LogSomeText", "text", diff --git a/crates/swc/tests/fixture/sourcemap/008/output/index.map b/crates/swc/tests/fixture/sourcemap/008/output/index.map index 55b087ea6aa5..bc82d03a1643 100644 --- a/crates/swc/tests/fixture/sourcemap/008/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/008/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA;AAAAA,QAAQ,CAAC,oBAAoB,EAAE,IAAM;IACjCC,EAAE,CAAC,OAAO,EAAE,IAAM;QACdC,MAAM,CAAC,KAAK,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEHF,EAAE,CAAC,OAAO,EAAE,IAAM;QACd,EAAE,GACFC,MAAM,CAAC,KAAK,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEHF,EAAE,CAAC,OAAO,EAAE,IAAM;QACd;;SAEC,GACDC,MAAM,CAAC,KAAK,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEHF,EAAE,CAAC,OAAO,EAAE,IAAM;QACdC,MAAM,CAAC,KAAK,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC", + "mappings": "AAAAA;AAAAA,SAAS,sBAAsB,IAAM;IACjCC,GAAG,SAAS,IAAM;QACdC,OAAO,KAAK,EAAEC,IAAI,CAAC,IAAI;IAC3B;IAEAF,GAAG,SAAS,IAAM;QACd,EAAE,GACFC,OAAO,KAAK,EAAEC,IAAI,CAAC,IAAI;IAC3B;IAEAF,GAAG,SAAS,IAAM;QACd;;SAEC,GACDC,OAAO,KAAK,EAAEC,IAAI,CAAC,IAAI;IAC3B;IAEAF,GAAG,SAAS,IAAM;QACdC,OAAO,KAAK,EAAEC,IAAI,CAAC,IAAI;IAC3B;AACJ", "names": [ "describe", "it", diff --git a/crates/swc/tests/fixture/sourcemap/009/output/index.map b/crates/swc/tests/fixture/sourcemap/009/output/index.map index 054cc74d354f..ed25035ff597 100644 --- a/crates/swc/tests/fixture/sourcemap/009/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/009/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;;;;CAKC,GACDA;AAAAA,OAAO,CAACC,GAAG,CAAC,IAAIC,KAAK,EAAE,CAACC,KAAK,CAAC,CAAC", + "mappings": "AAAA;;;;;CAKC,GACDA;AAAAA,QAAQC,GAAG,CAAC,IAAIC,QAAQC,KAAK", "names": [ "console", "log", diff --git a/crates/swc/tests/fixture/sourcemap/010/output/index.map b/crates/swc/tests/fixture/sourcemap/010/output/index.map index 26d30b399ca7..6b19f1872752 100644 --- a/crates/swc/tests/fixture/sourcemap/010/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/010/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AAEtC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC", + "mappings": "AAAA,cAAc,iBAAiB;AAC/B,cAAc,wBAAwB;AAEtC,cAAc,WAAW;AACzB,cAAc,eAAe", "names": [], "sources": [ "../../input/index.ts" diff --git a/crates/swc/tests/fixture/sourcemap/011/output/CommentControlller.map b/crates/swc/tests/fixture/sourcemap/011/output/CommentControlller.map index 946c304a93ac..edfb831e3e86 100644 --- a/crates/swc/tests/fixture/sourcemap/011/output/CommentControlller.map +++ b/crates/swc/tests/fixture/sourcemap/011/output/CommentControlller.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;;AAAA,SAASA,IAAI,EAAEC,UAAU,EAAEC,MAAM,EAAEC,KAAK,EAAEC,GAAG,EAAEC,SAAS,EAAEC,eAAe,QAAQ,gBAAgB,CAAC;AAElG,SACIC,wBAAwB,EACxBC,uBAAuB,EACvBC,uBAAuB,QACpB,+BAA+B,CAAC;AACvC,SAASC,kCAAkC,QAAQ,yDAAyD,CAAC;AAC7G,SAASC,OAAO,QAAQ,uCAAuC,CAAC;AAChE,SAASC,cAAc,QAAQ,gCAAgC,CAAC;AAChE,SAASC,YAAY,QAAQ,kCAAkC,CAAC;AAChE,SAASC,IAAI,QAAQ,kCAAkC,CAAC;AACxD,SAASA,IAAI,IAAIC,QAAQ,QAAQ,iCAAiC,CAAC;AACnE,SAASC,gBAAgB,QAAQ,sCAAsC,CAAC;AAIxE,WAAaC,iBAAiB,GAAvB;IACHC,YAAoBC,cAA8B,CAAE;QAAhCA,sBAAAA,cAA8B,CAAA;IAAI;IAI/CC,aAAa,CAChB,AAAaC,EAAU,EACvB,AAAQC,gBAAkC,EAC1C,AAAQC,IAAc,EACxB;QACE,OAAO,IAAI,CAACJ,cAAc,CAACK,MAAM,CAACH,EAAE,EAAEC,gBAAgB,EAAEC,IAAI,CAACF,EAAE,CAAC,CAAC;IACrE;IAIOI,aAAa,CAAC,AAAaJ,EAAU,EAAE,AAAQE,IAAc,EAAE;QAClE,OAAO,IAAI,CAACJ,cAAc,CAACO,MAAM,CAACL,EAAE,EAAEE,IAAI,CAACF,EAAE,CAAC,CAAC;IACnD;CACH,CAAA;;IAfIhB,SAAS,CAACQ,YAAY,CAAC;IACvBT,GAAG,CAACK,uBAAuB,CAAC;IAExBN,aAAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACXH,aAAAA,IAAI,EAAE,CAAA;IACNc,aAAAA,IAAI,EAAE,CAAA;;;;eADmB,gBAAgB,4BAAhB,gBAAgB;eAC5B,QAAQ,4BAAR,QAAQ;;GARjBG,iBAAiB;;IAazBZ,SAAS,CAACQ,YAAY,CAAC;IACvBX,MAAM,CAACM,uBAAuB,CAAC;IACVL,aAAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IAAcW,aAAAA,IAAI,EAAE,CAAA;;;;eAAO,QAAQ,4BAAR,QAAQ;;GAf3DG,iBAAiB;AAAjBA,iBAAiB;IAF7BhB,UAAU,CAACM,wBAAwB,CAAC;IACpCD,eAAe,CAACI,kCAAkC,CAACC,OAAO,CAAC,CAAC;;;eAErB,cAAc,4BAAd,cAAc;;GADzCM,iBAAiB", + "mappings": "AAAA;;;AAAA,SAASA,IAAI,EAAEC,UAAU,EAAEC,MAAM,EAAEC,KAAK,EAAEC,GAAG,EAAEC,SAAS,EAAEC,eAAe,QAAQ,iBAAiB;AAElG,SACIC,wBAAwB,EACxBC,uBAAuB,EACvBC,uBAAuB,QACpB,gCAAgC;AACvC,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASC,OAAO,QAAQ,wCAAwC;AAChE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,gBAAgB,QAAQ,uCAAuC;AAIxE,WAAaC,oBAAN;IACHC,YAAoBC,eAAgC;8BAAhCA;IAAkC;IAI/CC,cACH,AAAaC,EAAU,EACvB,AAAQC,gBAAkC,EAC1C,AAAQC,IAAc,EACxB;QACE,OAAO,IAAI,CAACJ,cAAc,CAACK,MAAM,CAACH,IAAIC,kBAAkBC,KAAKF,EAAE;IACnE;IAIOI,cAAc,AAAaJ,EAAU,EAAE,AAAQE,IAAc,EAAE;QAClE,OAAO,IAAI,CAACJ,cAAc,CAACO,MAAM,CAACL,IAAIE,KAAKF,EAAE;IACjD;AACJ,EAAC;;IAfIhB,UAAUQ;IACVT,IAAIK;IAEAN,aAAAA,MAAM;IACNH,aAAAA;IACAc,aAAAA;;;;eADyB,4CAAA;eACZ,oCAAA;;GARTG;;IAaRZ,UAAUQ;IACVX,OAAOM;IACcL,aAAAA,MAAM;IAAmBW,aAAAA;;;;eAAa,oCAAA;;GAfnDG;AAAAA;IAFZhB,WAAWM;IACXD,gBAAgBI,mCAAmCC;;;eAEZ,0CAAA;;GAD3BM", "names": [ "Body", "Controller", diff --git a/crates/swc/tests/fixture/sourcemap/012/output/CommentService.map b/crates/swc/tests/fixture/sourcemap/012/output/CommentService.map index 316f1a653386..f15dad34d225 100644 --- a/crates/swc/tests/fixture/sourcemap/012/output/CommentService.map +++ b/crates/swc/tests/fixture/sourcemap/012/output/CommentService.map @@ -1,5 +1,5 @@ { - "mappings": "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", + "mappings": "AAAA;;;AAAA,SAASA,KAAK,EAAEC,cAAcC,kBAAkB,QAAQ,WAAW;AACnE,SACEC,kBAAkB,EAClBC,UAAU,EACVC,4BAA4B,EAC5BC,iBAAiB,QACZ,iBAAiB;AACxB,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,mBAAmB;AAEjE,SAASC,OAAO,QAAyB,wCAAwC;AAGjF,SAASC,IAAI,QAAsB,kCAAkC;AAGrE,WAAaC,iBAAN;IACLC,YACqCC,cACHC,WACKC,WACrC;4BAHmCF;yBACHC;0BACKC;IACpC;IAEH,MAAMC,QAAQC,SAAiB,EAA4B;QACzD,MAAMC,UAAU,MAAM,IAAI,CAACL,YAAY,CAACM,QAAQ,CAACF;QAEjD,IAAI,CAACC,SAAS;YACZ,MAAM,IAAIZ,oBAAoB;QAChC,CAAC;QAED,OAAOY,QAAQE,QAAQ,CAAC;IAC1B;IAEA,MAAMC,OACJH,OAAyB,EACzBI,MAAc,EACdC,MAAc,EACY;QAC1B,MAAMC,UAAU,MAAM,IAAI,CAACT,UAAU,CAACU,YAAY;QAElDD,QAAQE,gBAAgB;QAExB,IAAI;YACF,MAAMC,iBAAiB,MAAM,IAAI,CAACd,YAAY,CAACQ,MAAM,CAAC;gBACpD,GAAGH,OAAO;gBACVU,QAAQL;gBACRD;YACF;YAEA,IAAI,CAACK,gBAAgB;gBACnB,MAAM,IAAItB,6BAA6B,2BAA2B;YACpE,CAAC;YAED,MAAM,EAAEwB,cAAa,EAAE,GAAG,MAAM,IAAI,CAACf,SAAS,CAACgB,SAAS,CACtD;gBAAEC,KAAKJ,eAAeL,MAAM;YAAC,GAC7B;gBACEU,OAAO;oBAAEC,UAAUN,eAAeO,EAAE;gBAAC;YACvC,GACA;gBAAEC,kBAAkB,KAAK;YAAC;YAG5B,IAAIN,kBAAkB,GAAG;gBACvB,MAAM,IAAIxB,6BAA6B,2BAA2B;YACpE,CAAC;YAED,MAAMmB,QAAQY,iBAAiB;YAE/B,OAAOT,eAAeP,QAAQ,CAAC;QACjC,EAAE,OAAOiB,OAAO;YACd,MAAMb,QAAQc,gBAAgB;YAE9B,MAAMD,MAAM;QACd,SAAU;YACRb,QAAQe,UAAU;QACpB;IACF;IAEA,MAAMC,OACJvB,SAAiB,EACjBC,OAAyB,EACzBK,MAAc,EACY;QAC1B,MAAM,EAAEK,OAAM,EAAE,GAAG,MAAM,IAAI,CAACZ,OAAO,CAACC;QAEtC,IAAIW,OAAOM,EAAE,KAAKX,QAAQ;YACxB,MAAM,IAAIpB,qBAAqB;QACjC,CAAC;QAED,MAAMsC,iBAAiB,MAAM,IAAI,CAAC5B,YAAY,CAAC6B,iBAAiB,CAACzB,WAAWC,SAAS;YACnFyB,KAAK,IAAI;QACX;QAEA,IAAI,CAACF,gBAAgB;YACnB,MAAM,IAAIpC,6BAA6B,2BAA2B;QACpE,CAAC;QAED,OAAOoC,eAAerB,QAAQ,CAAC;IACjC;IAEA,MAAMwB,OAAO3B,SAAiB,EAAEM,MAAc,EAAiB;QAC7D,MAAMC,UAAU,MAAM,IAAI,CAACT,UAAU,CAACU,YAAY;QAElDD,QAAQE,gBAAgB;QAExB,IAAI;YACF,MAAM,EAAEE,OAAM,EAAEN,OAAM,EAAE,GAAG,MAAM,IAAI,CAACN,OAAO,CAACC;YAE9C,IAAIW,OAAOM,EAAE,KAAKX,QAAQ;gBACxB,MAAM,IAAIpB,qBAAqB;YACjC,CAAC;YAED,MAAM,EAAE0C,aAAY,EAAE,GAAG,MAAM,IAAI,CAAChC,YAAY,CAACiC,SAAS,CAAC;gBAAEf,KAAKd;YAAU;YAE5E,MAAM,EAAEY,cAAa,EAAE,GAAG,MAAM,IAAI,CAACf,SAAS,CAACgB,SAAS,CACtD;gBAAEC,KAAKT;YAAO,GACd;gBACEyB,OAAO;oBAAEd,UAAUhB;gBAAU;YAC/B,GACA;gBAAEkB,kBAAkB,KAAK;YAAC;YAG5B,IAAIU,iBAAiB,KAAKhB,kBAAkB,GAAG;gBAC7C,MAAM,IAAIxB,6BAA6B,2BAA2B;YACpE,CAAC;YAED,MAAMmB,QAAQY,iBAAiB;QACjC,EAAE,OAAOC,OAAO;YACd,MAAMb,QAAQc,gBAAgB;YAE9B,MAAMD,MAAM;QACd,SAAU;YACRb,QAAQe,UAAU;QACpB;IACF;AACF,EAAC;AAtHY5B;IADZP;IAGIG,aAAAA,YAAYE,QAAQuC,IAAI;IACxBzC,aAAAA,YAAYG,KAAKsC,IAAI;IACrBxC,aAAAA;;;eAFgD,iCAAA;eACN,iCAAA;eACM,8CAAA;;GAJxCG", "names": [ "Model", "Connection", diff --git a/crates/swc/tests/fixture/sourcemap/013/output/PistController.map b/crates/swc/tests/fixture/sourcemap/013/output/PistController.map index a730677b6bc1..820dc8c458e6 100644 --- a/crates/swc/tests/fixture/sourcemap/013/output/PistController.map +++ b/crates/swc/tests/fixture/sourcemap/013/output/PistController.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;;AAAA,SACIA,IAAI,EACJC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,IAAI,EACJC,GAAG,EACHC,SAAS,EACTC,eAAe,QACZ,gBAAgB,CAAC;AAExB,SACIC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,iBAAiB,EACjBC,4BAA4B,EAC5BC,oBAAoB,EACpBC,oBAAoB,QACjB,+BAA+B,CAAC;AACvC,SAASC,kCAAkC,QAAQ,yDAAyD,CAAC;AAC7G,SAASX,IAAI,IAAIY,QAAQ,QAAQ,iCAAiC,CAAC;AACnE,SAASC,WAAW,QAAQ,0BAA0B,CAAC;AACvD,SAASC,aAAa,QAAQ,gCAAgC,CAAC;AAC/D,SAASC,YAAY,QAAQ,kCAAkC,CAAC;AAChE,SAASC,IAAI,QAAQ,kCAAkC,CAAC;AACxD,SAASA,IAAI,IAAIC,QAAQ,QAAQ,iCAAiC,CAAC;AACnE,SAASC,gBAAgB,QAAQ,sCAAsC,CAAC;AACxE,SAASC,cAAc,QAAQ,gCAAgC,CAAC;AAChE,SAASC,OAAO,QAAQ,uCAAuC,CAAC;AAIhE,WAAaC,cAAc,GAApB;IACHC,YAAoBC,WAAwB,EAAUC,cAA8B,CAAE;QAAlED,mBAAAA,WAAwB,CAAA;QAAUC,sBAAAA,cAA8B,CAAA;IAAI;IAGjFC,QAAQ,GAAG;QACd,OAAO,IAAI,CAACF,WAAW,CAACG,MAAM,EAAE,CAAC;IACrC;IAGOC,OAAO,CAAC,AAAaC,EAAU,EAAE;QACpC,OAAO,IAAI,CAACL,WAAW,CAACM,OAAO,CAACD,EAAE,CAAC,CAAC;IACxC;IAIOE,UAAU,CAAC,AAAQC,aAA4B,EAAE,AAAQC,IAAc,EAAE;QAC5E,OAAO,IAAI,CAACT,WAAW,CAACU,MAAM,CAACF,aAAa,EAAEC,IAAI,CAACJ,EAAE,CAAC,CAAC;IAC3D;IAIOM,UAAU,CACb,AAAaN,EAAU,EACvB,AAAQO,aAA4B,EACpC,AAAQH,IAAc,EACxB;QACE,OAAO,IAAI,CAACT,WAAW,CAACa,MAAM,CAACR,EAAE,EAAEO,aAAa,EAAEH,IAAI,CAACJ,EAAE,CAAC,CAAC;IAC/D;IAIOS,UAAU,CAAC,AAAaT,EAAU,EAAE,AAAQI,IAAc,EAAE;QAC/D,OAAO,IAAI,CAACT,WAAW,CAACe,MAAM,CAACV,EAAE,EAAEI,IAAI,CAACJ,EAAE,CAAC,CAAC;IAChD;IAKOW,iBAAiB,CACpB,AAAaX,EAAU,EACvB,AAAQY,gBAAkC,EAC1C,AAAQR,IAAc,EACxB;QACE,OAAO,IAAI,CAACR,cAAc,CAACS,MAAM,CAACO,gBAAgB,EAAEZ,EAAE,EAAEI,IAAI,CAACJ,EAAE,CAAC,CAAC;IACrE;CACH,CAAA;;IA1CI9B,GAAG,CAACQ,qBAAqB,CAAC;;;GAHlBe,cAAc;;IAQtBvB,GAAG,CAACS,iBAAiB,CAAC;IACPR,aAAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;;GATlBsB,cAAc;;IAatBnB,SAAS,CAACa,YAAY,CAAC;IACvBf,IAAI,CAACS,oBAAoB,CAAC;IACRd,aAAAA,IAAI,EAAE,CAAA;IAAgCqB,aAAAA,IAAI,EAAE,CAAA;;;eAAtB,aAAa,4BAAb,aAAa;eAAgB,QAAQ,4BAAR,QAAQ;;GAfrEK,cAAc;;IAmBtBnB,SAAS,CAACa,YAAY,CAAC;IACvBd,GAAG,CAACS,oBAAoB,CAAC;IAErBX,aAAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACXJ,aAAAA,IAAI,EAAE,CAAA;IACNqB,aAAAA,IAAI,EAAE,CAAA;;;;eADgB,aAAa,4BAAb,aAAa;eACtB,QAAQ,4BAAR,QAAQ;;GAxBjBK,cAAc;;IA6BtBnB,SAAS,CAACa,YAAY,CAAC;IACvBlB,MAAM,CAACQ,oBAAoB,CAAC;IACVN,aAAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IAAciB,aAAAA,IAAI,EAAE,CAAA;;;;eAAO,QAAQ,4BAAR,QAAQ;;GA/BxDK,cAAc;;IAmCtBlB,eAAe,CAACQ,kCAAkC,CAACS,OAAO,CAAC,CAAC;IAC5DlB,SAAS,CAACa,YAAY,CAAC;IACvBf,IAAI,CAACQ,4BAA4B,CAAC;IAE9BT,aAAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACXJ,aAAAA,IAAI,EAAE,CAAA;IACNqB,aAAAA,IAAI,EAAE,CAAA;;;;eADmB,gBAAgB,4BAAhB,gBAAgB;eAC5B,QAAQ,4BAAR,QAAQ;;GAzCjBK,cAAc;AAAdA,cAAc;IAF1BzB,UAAU,CAACQ,qBAAqB,CAAC;IACjCD,eAAe,CAACQ,kCAAkC,CAACC,QAAQ,CAAC,CAAC;;;eAEzB,WAAW,4BAAX,WAAW;eAA0B,cAAc,4BAAd,cAAc;;GAD3ES,cAAc", + "mappings": "AAAA;;;AAAA,SACIA,IAAI,EACJC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,IAAI,EACJC,GAAG,EACHC,SAAS,EACTC,eAAe,QACZ,iBAAiB;AAExB,SACIC,qBAAqB,EACrBC,oBAAoB,EACpBC,qBAAqB,EACrBC,iBAAiB,EACjBC,4BAA4B,EAC5BC,oBAAoB,EACpBC,oBAAoB,QACjB,gCAAgC;AACvC,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASX,QAAQY,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,gBAAgB,QAAQ,uCAAuC;AACxE,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,OAAO,QAAQ,wCAAwC;AAIhE,WAAaC,iBAAN;IACHC,YAAoBC,aAAkCC,eAAgC;2BAAlED;8BAAkCC;IAAkC;IAGjFC,WAAW;QACd,OAAO,IAAI,CAACF,WAAW,CAACG,MAAM;IAClC;IAGOC,QAAQ,AAAaC,EAAU,EAAE;QACpC,OAAO,IAAI,CAACL,WAAW,CAACM,OAAO,CAACD;IACpC;IAIOE,WAAW,AAAQC,aAA4B,EAAE,AAAQC,IAAc,EAAE;QAC5E,OAAO,IAAI,CAACT,WAAW,CAACU,MAAM,CAACF,eAAeC,KAAKJ,EAAE;IACzD;IAIOM,WACH,AAAaN,EAAU,EACvB,AAAQO,aAA4B,EACpC,AAAQH,IAAc,EACxB;QACE,OAAO,IAAI,CAACT,WAAW,CAACa,MAAM,CAACR,IAAIO,eAAeH,KAAKJ,EAAE;IAC7D;IAIOS,WAAW,AAAaT,EAAU,EAAE,AAAQI,IAAc,EAAE;QAC/D,OAAO,IAAI,CAACT,WAAW,CAACe,MAAM,CAACV,IAAII,KAAKJ,EAAE;IAC9C;IAKOW,kBACH,AAAaX,EAAU,EACvB,AAAQY,gBAAkC,EAC1C,AAAQR,IAAc,EACxB;QACE,OAAO,IAAI,CAACR,cAAc,CAACS,MAAM,CAACO,kBAAkBZ,IAAII,KAAKJ,EAAE;IACnE;AACJ,EAAC;;IA1CI9B,IAAIQ;;;GAHIe;;IAQRvB,IAAIS;IACWR,aAAAA,MAAM;;;;;GATbsB;;IAaRnB,UAAUa;IACVf,KAAKS;IACad,aAAAA;IAAsCqB,aAAAA;;;eAAhB,yCAAA;eAA6B,oCAAA;;GAf7DK;;IAmBRnB,UAAUa;IACVd,IAAIS;IAEAX,aAAAA,MAAM;IACNJ,aAAAA;IACAqB,aAAAA;;;;eADsB,yCAAA;eACT,oCAAA;;GAxBTK;;IA6BRnB,UAAUa;IACVlB,OAAOQ;IACWN,aAAAA,MAAM;IAAmBiB,aAAAA;;;;eAAa,oCAAA;;GA/BhDK;;IAmCRlB,gBAAgBQ,mCAAmCS;IACnDlB,UAAUa;IACVf,KAAKQ;IAEDT,aAAAA,MAAM;IACNJ,aAAAA;IACAqB,aAAAA;;;;eADyB,4CAAA;eACZ,oCAAA;;GAzCTK;AAAAA;IAFZzB,WAAWQ;IACXD,gBAAgBQ,mCAAmCC;;;eAEf,uCAAA;eAAqC,0CAAA;;GAD7DS", "names": [ "Body", "Controller", diff --git a/crates/swc/tests/fixture/sourcemap/014/output/UserController.map b/crates/swc/tests/fixture/sourcemap/014/output/UserController.map index f84aca1d4c7f..bb88afb1c55d 100644 --- a/crates/swc/tests/fixture/sourcemap/014/output/UserController.map +++ b/crates/swc/tests/fixture/sourcemap/014/output/UserController.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;;AAAA,SACIA,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,IAAI,EACJC,GAAG,EACHC,KAAK,EACLC,kBAAkB,EAClBC,eAAe,QACZ,gBAAgB,CAAC;AAExB,SACIC,qBAAqB,EACrBC,oBAAoB,EACpBC,oBAAoB,QACjB,+BAA+B,CAAC;AACvC,SAASC,aAAa,QAAQ,gCAAgC,CAAC;AAC/D,SAASC,aAAa,QAAQ,gCAAgC,CAAC;AAC/D,SAASC,YAAY,QAAQ,kCAAkC,CAAC;AAChE,SAASC,IAAI,QAAQ,kCAAkC,CAAC;AACxD,SAASA,IAAI,IAAIC,QAAQ,QAAQ,iCAAiC,CAAC;AACnE,SAASC,kCAAkC,QAAQ,yDAAyD,CAAC;AAC7G,SAASC,WAAW,QAAQ,0BAA0B,CAAC;AAIvD,WAAaC,cAAc,GAApB;IACHC,YAAoBC,WAAwB,CAAE;QAA1BA,mBAAAA,WAAwB,CAAA;IAAI;UAG1CC,MAAM,CAAC,AAAQC,aAA4B,EAAE;QAC/C,OAAO,IAAI,CAACF,WAAW,CAACG,MAAM,CAACD,aAAa,CAAC,CAAC;IAClD;UAIME,MAAM,CACR,AAAaC,MAAc,EAC3B,AAAQC,aAA4B,EACpC,AAAQC,IAAc,EACxB;QACE,IAAIA,IAAI,CAACC,EAAE,KAAKH,MAAM,EAAE;YACpB,MAAM,IAAInB,kBAAkB,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAACc,WAAW,CAACI,MAAM,CAACC,MAAM,EAAEC,aAAa,CAAC,CAAC;IAC1D;CACH,CAAA;;IAlBIzB,IAAI,CAACQ,oBAAoB,CAAC;IACbN,aAAAA,IAAI,EAAE,CAAA;;;eAAgB,aAAa,4BAAb,aAAa;;GAJxCe,cAAc;;IAQtBhB,SAAS,CAACW,YAAY,CAAC;IACvBT,GAAG,CAACM,oBAAoB,CAAC;IAErBL,aAAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IACXF,aAAAA,IAAI,EAAE,CAAA;IACNW,aAAAA,IAAI,EAAE,CAAA;;;;eADgB,aAAa,4BAAb,aAAa;eACtB,QAAQ,4BAAR,QAAQ;;GAbjBI,cAAc;AAAdA,cAAc;IAF1BlB,UAAU,CAACQ,qBAAqB,CAAC;IACjCD,eAAe,CAACS,kCAAkC,CAACD,QAAQ,CAAC,CAAC;;;eAEzB,WAAW,4BAAX,WAAW;;GADnCG,cAAc", + "mappings": "AAAA;;;AAAA,SACIA,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,IAAI,EACJC,GAAG,EACHC,KAAK,EACLC,kBAAkB,EAClBC,eAAe,QACZ,iBAAiB;AAExB,SACIC,qBAAqB,EACrBC,oBAAoB,EACpBC,oBAAoB,QACjB,gCAAgC;AACvC,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,aAAa,QAAQ,iCAAiC;AAC/D,SAASC,YAAY,QAAQ,mCAAmC;AAChE,SAASC,IAAI,QAAQ,mCAAmC;AACxD,SAASA,QAAQC,QAAQ,QAAQ,kCAAkC;AACnE,SAASC,kCAAkC,QAAQ,0DAA0D;AAC7G,SAASC,WAAW,QAAQ,2BAA2B;AAIvD,WAAaC,iBAAN;IACHC,YAAoBC,YAA0B;2BAA1BA;IAA4B;IAEhD,MACMC,OAAO,AAAQC,aAA4B,EAAE;QAC/C,OAAO,IAAI,CAACF,WAAW,CAACG,MAAM,CAACD;IACnC;IAEA,MAEME,OACF,AAAaC,MAAc,EAC3B,AAAQC,aAA4B,EACpC,AAAQC,IAAc,EACxB;QACE,IAAIA,KAAKC,EAAE,KAAKH,QAAQ;YACpB,MAAM,IAAInB,qBAAqB;QACnC,CAAC;QAED,OAAO,IAAI,CAACc,WAAW,CAACI,MAAM,CAACC,QAAQC;IAC3C;AACJ,EAAC;;IAlBIzB,KAAKQ;IACQN,aAAAA;;;eAAsB,yCAAA;;GAJ3Be;;IAQRhB,UAAUW;IACVT,IAAIM;IAEAL,aAAAA,MAAM;IACNF,aAAAA;IACAW,aAAAA;;;;eADsB,yCAAA;eACT,oCAAA;;GAbTI;AAAAA;IAFZlB,WAAWQ;IACXD,gBAAgBS,mCAAmCD;;;eAEf,uCAAA;;GADxBG", "names": [ "Controller", "Post", diff --git a/crates/swc/tests/fixture/sourcemap/issue-2185/output/index.map b/crates/swc/tests/fixture/sourcemap/issue-2185/output/index.map index ab89bf7ed8eb..4ce2a81d73a1 100644 --- a/crates/swc/tests/fixture/sourcemap/issue-2185/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/issue-2185/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA,QAAQ,CAAC,KAAK,EAAE,IAAM;IAClBC,EAAE,CAAC,OAAO,EAAE,IAAM;QACdC,MAAM,CAAC,KAAK,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEHF,EAAE,CAAC,OAAO,EAAE,IAAM;QACd,MAAMG,GAAG,GAAG,CAAC;;MAEf,CAAC,AAAC;QAEAF,MAAM,CAAC,KAAK,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEHF,EAAE,CAAC,OAAO,EAAE,IAAM;QACdC,MAAM,CAAC,KAAK,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC", + "mappings": "AAAAA,SAAS,OAAO,IAAM;IAClBC,GAAG,SAAS,IAAM;QACdC,OAAO,KAAK,EAAEC,IAAI,CAAC,IAAI;IAC3B;IAEAF,GAAG,SAAS,IAAM;QACd,MAAMG,MAAM,CAAC;;MAEf,CAAC;QAECF,OAAO,KAAK,EAAEC,IAAI,CAAC,IAAI;IAC3B;IAEAF,GAAG,SAAS,IAAM;QACdC,OAAO,KAAK,EAAEC,IAAI,CAAC,IAAI;IAC3B;AACJ", "names": [ "describe", "it", diff --git a/crates/swc/tests/fixture/sourcemap/issue-2666/output/index.map b/crates/swc/tests/fixture/sourcemap/issue-2666/output/index.map index 9d749a0a6441..e70661077be1 100644 --- a/crates/swc/tests/fixture/sourcemap/issue-2666/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/issue-2666/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA,IAAI,IAAI,EAAE;IACN,IAAIA,CAAC,GAAGC,MAAM,CAACC,GAAG,AAAC;AACvB,CAAC", + "mappings": "AAAA,IAAI,IAAI,EAAE;IACN,IAAIA,IAAIC,OAAOC,GAAG;AACtB,CAAC", "names": [ "h", "Symbol", diff --git a/crates/swc/tests/fixture/sourcemap/issue-3180/1/output/index.map b/crates/swc/tests/fixture/sourcemap/issue-3180/1/output/index.map index a7e8fb2ef0ad..25b0b6079f38 100644 --- a/crates/swc/tests/fixture/sourcemap/issue-3180/1/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/issue-3180/1/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC", + "mappings": "AAAA,cAAc,iBAAiB;AAC/B,cAAc,wBAAwB;AACtC,cAAc,eAAe;AAC7B,cAAc,WAAW;AACzB,cAAc,eAAe", "names": [], "sources": [ "../../input/index.ts" diff --git a/crates/swc/tests/fixture/sourcemap/issue-3733/1/output/index.map b/crates/swc/tests/fixture/sourcemap/issue-3733/1/output/index.map index b02e63eb8ee7..1263b4f89e2b 100644 --- a/crates/swc/tests/fixture/sourcemap/issue-3733/1/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/issue-3733/1/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA,CAAC,EAAE,CAAC,CAAC,GAAG", + "mappings": "AAAAA,KAAK,GAAG", "names": [ "a" ], diff --git a/crates/swc/tests/fixture/sourcemap/issue-3733/2/output/index.map b/crates/swc/tests/fixture/sourcemap/issue-3733/2/output/index.map index ddb3b151ccfb..b39e5434767b 100644 --- a/crates/swc/tests/fixture/sourcemap/issue-3733/2/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/issue-3733/2/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAAA,CAAC,EAAE,CAAC,CAAC,GAAG", + "mappings": "AAAAA,KAAK,GAAG", "names": [ "a" ], diff --git a/crates/swc/tests/fixture/sourcemap/issue-3854/1-true/output/index.map b/crates/swc/tests/fixture/sourcemap/issue-3854/1-true/output/index.map index c8e0254574ef..98cceb8ffe02 100644 --- a/crates/swc/tests/fixture/sourcemap/issue-3854/1-true/output/index.map +++ b/crates/swc/tests/fixture/sourcemap/issue-3854/1-true/output/index.map @@ -1,5 +1,5 @@ { - "mappings": "AAAA;;;;;;;;;;;IA2BYA,IAAI;IAEHC,MAAM,MAANA,MAAM;IACNC,QAAQ,MAARA,QAAQ;IAERC,MAAM,MAANA,MAAM;IACNC,KAAK,MAALA,KAAK;IAELC,MAAM,MAANA,MAAM;IAENC,MAAM,MAANA,MAAM;IAKNC,OAAO,MAAPA,OAAO;IAGPC,GAAG,MAAHA,GAAG;;;;;;;kCA7CoC,oBAAoB;8BACxB,iBAAiB;gCAC3C,kBAAkB;oFAwB1B,oBAAoB;AAG3B,MAAMP,MAAM,GAA+B,IAAM,IAAIQ,WAAW,EAAE,AAAC;AACnE,MAAMP,QAAQ,GAAmC,IACpD,IAAIQ,eAAe,EAAE,AAAC;AACnB,MAAMP,MAAM,GAAiC,IAAM,IAAIQ,aAAa,EAAE,AAAC;AACvE,MAAMP,KAAK,GAAoC,IAClD,IAAIQ,gBAAgB,EAAE,AAAC;AACpB,MAAMP,MAAM,GAAqC,IACpD,IAAIQ,iBAAiB,EAAE,AAAC;AACrB,MAAMP,MAAM,GAGf,CAACQ,KAA+B,GAAG,EAAE,GACrC,IAAIC,oBAAoB,IAAID,KAAK,CAAC,AAAC;AAChC,MAAMP,OAAO,GAAyC,IACzD,IAAIS,qBAAqB,EAAE,AAAC;AAEzB,MAAMR,GAAG,GAAG;IACfJ,KAAK,EAAG,IACJ,IAAIa,mBAAmB,EAAE;IAC7BX,MAAM,EAAG,IACL,IAAIY,uBAAuB,EAAE;CACpC,AAAS,AAAC;IAGP,OAAO,gCACP,SAAS,gCACT,WAAW,gCACX,eAAe;AAJnB,MAAMT,WAAW,SAASU,iBAAe,gBAAA;IAMrCC,MAAM,CAAC,GAAGA,MAAM,AAAsB,EAAQ;oCACpCA,OAAM,EAAGA,MAAM,CAACC,GAAG,CAACC,aAAW,YAAA,CAAC,EAAC;QACvC,OAAO,IAAI,CAAC;IAChB;IAEApB,QAAQ,CAACA,QAA6B,EAAQ;oCACpCA,SAAQ,EAAGoB,IAAAA,aAAW,YAAA,EAACpB,QAAQ,CAAC,EAAC;QACvC,OAAO,IAAI,CAAC;IAChB;IAEAqB,UAAU,CAACA,UAAqC,EAAQ;oCAC9CA,WAAU,EAAGA,UAAU,EAAEF,GAAG,CAACC,aAAW,YAAA,CAAC,EAAC;QAChD,OAAO,IAAI,CAAC;IAChB;IAEAE,cAAc,CAACA,cAAyC,EAAQ;oCACtDA,eAAc,EAAGF,IAAAA,aAAW,YAAA,EAACE,cAAc,CAAC,EAAC;QACnD,OAAO,IAAI,CAAC;IAChB;IAEAC,KAAK,GAAS;QACV,OAAO;YACHL,MAAM,wBAAE,IAAI,EAAEA,OAAM;YACpBlB,QAAQ,wBAAE,IAAI,EAAEA,SAAQ;YACxBqB,UAAU,wBAAE,IAAI,EAAEA,WAAU;YAC5BC,cAAc,wBAAE,IAAI,EAAEA,eAAc;SACvC,CAAC;IACN;;;QAhCA,6BAAA,OAAO;;mBAAgB,EAAE;UAAC,CAAA;QAC1B,6BAAA,SAAS;;mBAAcE,SAAS;UAAC,CAAA;QACjC,6BAAA,WAAW;;mBAAqBA,SAAS;UAAC,CAAA;QAC1C,6BAAA,eAAe;;mBAAoBA,SAAS;UAAC,CAAA;;CA8BhD;IAGG,MAAM,gCACN,OAAO;AAFX,MAAMhB,eAAe,SAASS,iBAAe,gBAAA;IAIzCL,KAAK,CAACA,KAA+B,EAAQ;oCACnCA,MAAK,EAAGA,KAAK,CAACO,GAAG,CAACC,aAAW,YAAA,CAAC,EAAC;QACrC,OAAO,IAAI,CAAC;IAChB;IAEAK,MAAM,CAACA,MAAgC,EAAQ;oCACrCA,OAAM,EAAGA,MAAM,CAACN,GAAG,CAACC,aAAW,YAAA,CAAC,EAAC;QACvC,OAAO,IAAI,CAAC;IAChB;IAEAG,KAAK,GAAa;QACd,OAAO;YACHX,KAAK,wBAAE,IAAI,EAAEA,MAAK;YAClBa,MAAM,wBAAE,IAAI,EAAEA,OAAM;SACvB,CAAC;IACN;;;QAlBA,6BAAA,MAAM;;mBAAoB,EAAE;UAAC,CAAA;QAC7B,6BAAA,OAAO;;mBAAoB,EAAE;UAAC,CAAA;;CAkBjC;IAGG,QAAQ;AADZ,MAAMhB,aAAa,SAASQ,iBAAe,gBAAA;IAGvCS,OAAO,CAACA,OAAoC,EAAQ;oCAC1CA,QAAO,EAAGN,IAAAA,aAAW,YAAA,EAACM,OAAO,CAAC,EAAC;QACrC,OAAO,IAAI,CAAC;IAChB;IAEAH,KAAK,GAAW;QACZ,OAAO;YACHG,OAAO,wBAAE,IAAI,EAAEA,QAAO;SACzB,CAAC;IACN;;;QAXA,6BAAA,QAAQ;;mBAAsBC,IAAAA,eAAK,MAAA,GAAE,CAACJ,KAAK,EAAE;UAAC,CAAA;;CAYjD;IAGG,OAAM,gCACN,OAAO,gCACP,WAAW,gCACX,sBAAsB;AAJ1B,MAAMR,mBAAmB,SAASa,iBAAkB,mBAAA;IAMhDhB,KAAK,CAACA,KAA2C,EAAQ;oCAC/CA,OAAK,EAAGA,KAAK,CAACO,GAAG,CAACU,aAAY,aAAA,CAAC,EAAC;QACtC,OAAO,IAAI,CAAC;IAChB;IAEA1B,MAAM,CAACA,MAAyC,EAAQ;oCAC9CA,OAAM,EAAG0B,IAAAA,aAAY,aAAA,EAAC1B,MAAM,IAAI,EAAE,CAAC,EAAC;QAC1C,OAAO,IAAI,CAAC;IAChB;IAEA2B,UAAU,CAACA,UAAsD,EAAQ;oCAC/DA,WAAU,EAAGA,UAAU,CAACX,GAAG,CAACU,aAAY,aAAA,CAAC,EAAC;QAChD,OAAO,IAAI,CAAC;IAChB;IAEAE,qBAAqB,CACjBA,qBAA2D,EACvD;oCACEA,sBAAqB,EAAGA,qBAAqB,CAACZ,GAAG,CAACU,aAAY,aAAA,CAAC,EAAC;QACtE,OAAO,IAAI,CAAC;IAChB;IAEAG,aAAa,CAACC,cAAuC,EAAa;QAC9D,OAAO;YACHC,EAAE,EAAEC,IAAAA,aAAI,KAAA,EACJ,WAAW,wBACX,IAAI,EAAEvB,OAAK,yBACX,IAAI,EAAEkB,WAAU,yBAChB,IAAI,EAAEC,sBAAqB,yBAC3B,IAAI,EAAE5B,OAAM,EACf;YACDS,KAAK,EAAEqB,cAAc,CAACG,KAAK,uBAAC,IAAI,EAAExB,OAAK,EAAC;YACxCT,MAAM,EAAE8B,cAAc,CAACI,KAAK,uBAAC,IAAI,EAAElC,OAAM,EAAC;YAC1C2B,UAAU,EAAEG,cAAc,CAACG,KAAK,uBAAC,IAAI,EAAEN,WAAU,EAAC;YAClDC,qBAAqB,EAAEE,cAAc,CAACG,KAAK,uBACvC,IAAI,EAAEL,sBAAqB,EAC9B;SACJ,CAAC;IACN;;;QA3CA,6BAAA,OAAM;;mBAAgC,EAAE;UAAC,CAAA;QACzC,6BAAA,OAAO;;mBAA4BP,SAAS;UAAC,CAAA;QAC7C,6BAAA,WAAW;;mBAAsC,EAAE;UAAC,CAAA;QACpD,6BAAA,sBAAsB;;mBAAgC,EAAE;UAAC,CAAA;;CAyC5D;IAGG,WAAW;AADf,MAAMd,gBAAgB,SAASO,iBAAe,gBAAA;IAG1CL,KAAK,CAACA,KAA+B,EAAQ;QACzC,sBAAA,IAAI,EAAE0B,WAAU,EAAC1B,KAAK,CAAC;YAACA,KAAK;SAAC,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB;IAEAT,MAAM,CAACA,MAA6B,EAAQ;QACxC,IAAIA,MAAM,EAAE;YACR,sBAAA,IAAI,EAAEmC,WAAU,EAACnC,MAAM,CAAC;gBAACA,MAAM;aAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IAChB;IAEA2B,UAAU,CAACA,UAA0C,EAAQ;QACzD,sBAAA,IAAI,EAAEQ,WAAU,EAACR,UAAU,CAAC;YAACA,UAAU;SAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IAChB;IAEAC,qBAAqB,CACjBA,qBAA+C,EAC3C;QACJ,sBAAA,IAAI,EAAEO,WAAU,EAACP,qBAAqB,CAAC;YAACA,qBAAqB;SAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IAChB;IAEAR,KAAK,GAAc;QACf,OAAO,sBAAA,IAAI,EAAEe,WAAU,EAACf,KAAK,EAAE,CAAC;IACpC;;;QA5BA,6BAAA,WAAW;;mBAAwB,IAAIR,mBAAmB,EAAE;UAAC,CAAA;;CA6BhE;IAGG,QAAQ,gCACR,OAAO;AAFX,MAAMJ,iBAAiB,SAASM,iBAAe,gBAAA;IAI3CsB,OAAO,CAACA,OAA8B,EAAQ;oCACpCA,QAAO,EAAGA,OAAO,EAAC;QACxB,OAAO,IAAI,CAAC;IAChB;IAEAtC,MAAM,CAACA,MAAwB,EAAQ;oCAC7BA,OAAM,EAAGmB,IAAAA,aAAW,YAAA,EAACnB,MAAM,CAAC,EAAC;QACnC,OAAO,IAAI,CAAC;IAChB;IAEAsB,KAAK,GAAe;QAChB,OAAO;YACHgB,OAAO,wBAAE,IAAI,EAAEA,QAAO;YACtBtC,MAAM,wBAAE,IAAI,EAAEA,OAAM;SACvB,CAAC;IACN;;;QAlBA,6BAAA,QAAQ;;mBAA0B,MAAM;UAAC,CAAA;QACzC,6BAAA,OAAO;;mBAAYuB,SAAS;UAAC,CAAA;;CAkBhC;IAGG,OAAM;AADV,MAAMR,uBAAuB,SAASY,iBAAkB,mBAAA;IAGpDhB,KAAK,CAACA,KAA2C,EAAQ;oCAC/CA,OAAK,EAAGA,KAAK,CAACO,GAAG,CAACU,aAAY,aAAA,CAAC,EAAC;QACtC,OAAO,IAAI,CAAC;IAChB;IAEAG,aAAa,CAACC,cAAuC,EAAiB;QAClE,MAAMC,EAAE,GAAGC,IAAAA,aAAI,KAAA,EAAC,gBAAgB,wBAAE,IAAI,EAAEvB,OAAK,EAAC,AAAC;QAC/C,OAAO;YACHsB,EAAE;YACFtB,KAAK,EAAEqB,cAAc,CAACG,KAAK,uBAAC,IAAI,EAAExB,OAAK,EAAC;SAC3C,CAAC;IACN;;;QAbA,6BAAA,OAAM;;mBAAgC,EAAE;UAAC,CAAA;;CAc5C;IAGG,YAAW;AADf,MAAMC,oBAAoB,SAASI,iBAAe,gBAAA;IAQ9CL,KAAK,CAAC,GAAGA,KAAK,AAA0B,EAAQ;QAC5C,sBAAA,IAAI,EAAE0B,YAAU,EAAC1B,KAAK,CAAC;YAACA,KAAK;SAAC,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB;IAEAW,KAAK,GAAkB;QACnB,OAAO,sBAAA,IAAI,EAAEe,YAAU,EAACf,KAAK,EAAE,CAAC;IACpC;IAZAiB,YAAY,GAAG5B,KAAK,AAA0B,CAAE;QAC5C,KAAK,EAAE,CAAC;QAHZ,6BAAA,YAAW;;mBAA4B,IAAII,uBAAuB,EAAE;UAAC,CAAA;QAIjE,IAAI,CAACJ,KAAK,IAAIA,KAAK,CAAC,CAAC;IACzB;CAUH;IAGG,OAAM,gCACN,QAAO;AAFX,MAAME,qBAAqB,SAASG,iBAAe,gBAAA;IAI/CL,KAAK,CAAC,GAAGA,KAAK,AAA0B,EAAQ;oCACtCA,OAAK,EAAGA,KAAK,CAACO,GAAG,CAACC,aAAW,YAAA,CAAC,EAAC;QACrC,OAAO,IAAI,CAAC;IAChB;IAEAK,MAAM,CAAC,GAAGA,MAAM,AAA0B,EAAQ;oCACxCA,QAAM,EAAGA,MAAM,CAACN,GAAG,CAACC,aAAW,YAAA,CAAC,EAAC;QACvC,OAAO,IAAI,CAAC;IAChB;IAEAG,KAAK,GAAmB;QACpB,OAAO;YACHX,KAAK,wBAAE,IAAI,EAAEA,OAAK;YAClBa,MAAM,wBAAE,IAAI,EAAEA,QAAM;SACvB,CAAC;IACN;;;QAlBA,6BAAA,OAAM;;mBAAoB,EAAE;UAAC,CAAA;QAC7B,6BAAA,QAAO;;mBAAoB,EAAE;UAAC,CAAA;;CAkBjC", + "mappings": "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", "names": [ "node", "create", diff --git a/crates/swc/tests/fixture/sourcemap/issue-3854/2-inline/output/index.ts b/crates/swc/tests/fixture/sourcemap/issue-3854/2-inline/output/index.ts index f1c859af1ed6..6bad679608bf 100644 --- a/crates/swc/tests/fixture/sourcemap/issue-3854/2-inline/output/index.ts +++ b/crates/swc/tests/fixture/sourcemap/issue-3854/2-inline/output/index.ts @@ -316,4 +316,4 @@ class ArticleSourcesBuilder extends _abstractBuilders.AbstractBuilder { } } -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2lucHV0L2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0QnVpbGRlciwgQWJzdHJhY3RTZXFCdWlsZGVyIH0gZnJvbSBcIi4vQWJzdHJhY3RCdWlsZGVyc1wiO1xuaW1wb3J0IHsgaGFzaCwgbWFwQnVpbGRBcmcsIG1hcEJ1aWxkQXJncyB9IGZyb20gXCIuL0J1aWxkZXIudXRpbHNcIjtcbmltcG9ydCB7IGltYWdlIH0gZnJvbSBcIi4vRWxlbWVudEJ1aWxkZXJcIjtcblxuaW1wb3J0IHR5cGUge1xuICAgIEJvZHksXG4gICAgQm9keVN0YWdlLFxuICAgIFRydXN0Qm94LFxuICAgIFJpY2hUZXh0LFxuICAgIE9wZW5lcixcbiAgICBCb2R5SGVhZGVyLFxuICAgIFN0YWdlLFxuICAgIEFydGljbGVTb3VyY2UsXG4gICAgQXJ0aWNsZVNvdXJjZXMsXG59IGZyb20gXCJAcGFwZXIvbW9kZWxzXCI7XG5pbXBvcnQgdHlwZSB7XG4gICAgQnVpbGRBcmcsXG4gICAgQnVpbGRBcmdzLFxuICAgIENyZWF0ZUJ1aWxkZXIsXG4gICAgU2VxRWxlbWVudCxcbiAgICBTZXFOZXh0RWxlbWVudENvbnZlcnRlcixcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2Uge0J1aWxkZXIuYm9keS5ub2RlLmltZygpfVxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9Cb2R5Tm9kZXNCdWlsZGVyXCI7XG5leHBvcnQgKiBhcyBub2RlIGZyb20gXCIuL0JvZHlOb2Rlc0J1aWxkZXJcIjtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZTogQ3JlYXRlQnVpbGRlcjxCb2R5QnVpbGRlcj4gPSAoKSA9PiBuZXcgQm9keUJ1aWxkZXIoKTtcbmV4cG9ydCBjb25zdCB0cnVzdEJveDogQ3JlYXRlQnVpbGRlcjxUcnVzdEJveEJ1aWxkZXI+ID0gKCkgPT5cbiAgICBuZXcgVHJ1c3RCb3hCdWlsZGVyKCk7XG5leHBvcnQgY29uc3Qgb3BlbmVyOiBDcmVhdGVCdWlsZGVyPE9wZW5lckJ1aWxkZXI+ID0gKCkgPT4gbmV3IE9wZW5lckJ1aWxkZXIoKTtcbmV4cG9ydCBjb25zdCBzdGFnZTogQ3JlYXRlQnVpbGRlcjxCb2R5U3RhZ2VCdWlsZGVyPiA9ICgpID0+XG4gICAgbmV3IEJvZHlTdGFnZUJ1aWxkZXIoKTtcbmV4cG9ydCBjb25zdCBoZWFkZXI6IENyZWF0ZUJ1aWxkZXI8Qm9keUhlYWRlckJ1aWxkZXI+ID0gKCkgPT5cbiAgICBuZXcgQm9keUhlYWRlckJ1aWxkZXIoKTtcbmV4cG9ydCBjb25zdCBzb3VyY2U6IENyZWF0ZUJ1aWxkZXI8XG4gICAgQXJ0aWNsZVNvdXJjZUJ1aWxkZXIsXG4gICAgQnVpbGRBcmdzPFJpY2hUZXh0Lk5vZGU+XG4+ID0gKG5vZGVzOiBCdWlsZEFyZ3M8UmljaFRleHQuTm9kZT4gPSBbXSkgPT5cbiAgICBuZXcgQXJ0aWNsZVNvdXJjZUJ1aWxkZXIoLi4ubm9kZXMpO1xuZXhwb3J0IGNvbnN0IHNvdXJjZXM6IENyZWF0ZUJ1aWxkZXI8QXJ0aWNsZVNvdXJjZXNCdWlsZGVyPiA9ICgpID0+XG4gICAgbmV3IEFydGljbGVTb3VyY2VzQnVpbGRlcigpO1xuXG5leHBvcnQgY29uc3Qgc2VxID0ge1xuICAgIHN0YWdlOiAoKCkgPT5cbiAgICAgICAgbmV3IEJvZHlTdGFnZVNlcUJ1aWxkZXIoKSkgYXMgQ3JlYXRlQnVpbGRlcjxCb2R5U3RhZ2VTZXFCdWlsZGVyPixcbiAgICBzb3VyY2U6ICgoKSA9PlxuICAgICAgICBuZXcgQXJ0aWNsZVNvdXJjZVNlcUJ1aWxkZXIoKSkgYXMgQ3JlYXRlQnVpbGRlcjxBcnRpY2xlU291cmNlU2VxQnVpbGRlcj4sXG59IGFzIGNvbnN0O1xuXG5jbGFzcyBCb2R5QnVpbGRlciBleHRlbmRzIEFic3RyYWN0QnVpbGRlcjxCb2R5PiB7XG4gICAgI3N0YWdlczogQm9keVN0YWdlW10gPSBbXTtcbiAgICAjdHJ1c3RCb3g/OiBUcnVzdEJveCA9IHVuZGVmaW5lZDtcbiAgICAjZGlzY2xhaW1lcj86IFJpY2hUZXh0Lk5vZGVbXSA9IHVuZGVmaW5lZDtcbiAgICAjYXJ0aWNsZVNvdXJjZXM/OiBBcnRpY2xlU291cmNlcyA9IHVuZGVmaW5lZDtcblxuICAgIHN0YWdlcyguLi5zdGFnZXM6IEJ1aWxkQXJnczxCb2R5U3RhZ2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuI3N0YWdlcyA9IHN0YWdlcy5tYXAobWFwQnVpbGRBcmcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0cnVzdEJveCh0cnVzdEJveD86IEJ1aWxkQXJnPFRydXN0Qm94Pik6IHRoaXMge1xuICAgICAgICB0aGlzLiN0cnVzdEJveCA9IG1hcEJ1aWxkQXJnKHRydXN0Qm94KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZGlzY2xhaW1lcihkaXNjbGFpbWVyPzogQnVpbGRBcmdzPFJpY2hUZXh0Lk5vZGU+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuI2Rpc2NsYWltZXIgPSBkaXNjbGFpbWVyPy5tYXAobWFwQnVpbGRBcmcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBhcnRpY2xlU291cmNlcyhhcnRpY2xlU291cmNlcz86IEJ1aWxkQXJnPEFydGljbGVTb3VyY2VzPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNhcnRpY2xlU291cmNlcyA9IG1hcEJ1aWxkQXJnKGFydGljbGVTb3VyY2VzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGQoKTogQm9keSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFnZXM6IHRoaXMuI3N0YWdlcyxcbiAgICAgICAgICAgIHRydXN0Qm94OiB0aGlzLiN0cnVzdEJveCxcbiAgICAgICAgICAgIGRpc2NsYWltZXI6IHRoaXMuI2Rpc2NsYWltZXIsXG4gICAgICAgICAgICBhcnRpY2xlU291cmNlczogdGhpcy4jYXJ0aWNsZVNvdXJjZXMsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBUcnVzdEJveEJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdEJ1aWxkZXI8VHJ1c3RCb3g+IHtcbiAgICAjbm9kZXM6IFJpY2hUZXh0Lk5vZGVbXSA9IFtdO1xuICAgICNoaWRkZW46IFJpY2hUZXh0Lk5vZGVbXSA9IFtdO1xuXG4gICAgbm9kZXMobm9kZXM6IEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNub2RlcyA9IG5vZGVzLm1hcChtYXBCdWlsZEFyZyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGhpZGRlbihoaWRkZW46IEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNoaWRkZW4gPSBoaWRkZW4ubWFwKG1hcEJ1aWxkQXJnKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGQoKTogVHJ1c3RCb3gge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZXM6IHRoaXMuI25vZGVzLFxuICAgICAgICAgICAgaGlkZGVuOiB0aGlzLiNoaWRkZW4sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBPcGVuZXJCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RCdWlsZGVyPE9wZW5lcj4ge1xuICAgICNlbGVtZW50OiBPcGVuZXJbXCJlbGVtZW50XCJdID0gaW1hZ2UoKS5idWlsZCgpO1xuXG4gICAgZWxlbWVudChlbGVtZW50OiBCdWlsZEFyZzxPcGVuZXJbXCJlbGVtZW50XCJdPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNlbGVtZW50ID0gbWFwQnVpbGRBcmcoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCk6IE9wZW5lciB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLiNlbGVtZW50LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuY2xhc3MgQm9keVN0YWdlU2VxQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U2VxQnVpbGRlcjxCb2R5U3RhZ2U+IHtcbiAgICAjbm9kZXM6IFNlcUVsZW1lbnQ8UmljaFRleHQuTm9kZVtdPiA9IFtdO1xuICAgICNoZWFkZXI/OiBTZXFFbGVtZW50PEJvZHlIZWFkZXI+ID0gdW5kZWZpbmVkO1xuICAgICNjb21wYW5pb25zOiBTZXFFbGVtZW50PFN0YWdlLkNvbXBhbmlvbkl0ZW1bXT4gPSBbXTtcbiAgICAjY29tbWVyY2lhbHNFbmRPZlN0YWdlOiBTZXFFbGVtZW50PFJpY2hUZXh0Lk5vZGVbXT4gPSBbXTtcblxuICAgIG5vZGVzKG5vZGVzOiBTZXFFbGVtZW50PEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jbm9kZXMgPSBub2Rlcy5tYXAobWFwQnVpbGRBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaGVhZGVyKGhlYWRlcj86IFNlcUVsZW1lbnQ8QnVpbGRBcmc8Qm9keUhlYWRlcj4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuI2hlYWRlciA9IG1hcEJ1aWxkQXJncyhoZWFkZXIgPz8gW10pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb21wYW5pb25zKGNvbXBhbmlvbnM6IFNlcUVsZW1lbnQ8QnVpbGRBcmdzPFN0YWdlLkNvbXBhbmlvbkl0ZW0+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLiNjb21wYW5pb25zID0gY29tcGFuaW9ucy5tYXAobWFwQnVpbGRBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29tbWVyY2lhbHNFbmRPZlN0YWdlKFxuICAgICAgICBjb21tZXJjaWFsc0VuZE9mU3RhZ2U6IFNlcUVsZW1lbnQ8QnVpbGRBcmdzPFJpY2hUZXh0Lk5vZGU+PlxuICAgICk6IHRoaXMge1xuICAgICAgICB0aGlzLiNjb21tZXJjaWFsc0VuZE9mU3RhZ2UgPSBjb21tZXJjaWFsc0VuZE9mU3RhZ2UubWFwKG1hcEJ1aWxkQXJncyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkTGlzdEl0ZW0oc2VxTmV4dEVsZW1lbnQ6IFNlcU5leHRFbGVtZW50Q29udmVydGVyKTogQm9keVN0YWdlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBoYXNoKFxuICAgICAgICAgICAgICAgIFwiYm9keVN0YWdlXCIsXG4gICAgICAgICAgICAgICAgdGhpcy4jbm9kZXMsXG4gICAgICAgICAgICAgICAgdGhpcy4jY29tcGFuaW9ucyxcbiAgICAgICAgICAgICAgICB0aGlzLiNjb21tZXJjaWFsc0VuZE9mU3RhZ2UsXG4gICAgICAgICAgICAgICAgdGhpcy4jaGVhZGVyXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbm9kZXM6IHNlcU5leHRFbGVtZW50LmFycmF5KHRoaXMuI25vZGVzKSxcbiAgICAgICAgICAgIGhlYWRlcjogc2VxTmV4dEVsZW1lbnQubWF5YmUodGhpcy4jaGVhZGVyKSxcbiAgICAgICAgICAgIGNvbXBhbmlvbnM6IHNlcU5leHRFbGVtZW50LmFycmF5KHRoaXMuI2NvbXBhbmlvbnMpLFxuICAgICAgICAgICAgY29tbWVyY2lhbHNFbmRPZlN0YWdlOiBzZXFOZXh0RWxlbWVudC5hcnJheShcbiAgICAgICAgICAgICAgICB0aGlzLiNjb21tZXJjaWFsc0VuZE9mU3RhZ2VcbiAgICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBCb2R5U3RhZ2VCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RCdWlsZGVyPEJvZHlTdGFnZT4ge1xuICAgICNzZXFCdWlsZGVyOiBCb2R5U3RhZ2VTZXFCdWlsZGVyID0gbmV3IEJvZHlTdGFnZVNlcUJ1aWxkZXIoKTtcblxuICAgIG5vZGVzKG5vZGVzOiBCdWlsZEFyZ3M8UmljaFRleHQuTm9kZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jc2VxQnVpbGRlci5ub2Rlcyhbbm9kZXNdKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaGVhZGVyKGhlYWRlcj86IEJ1aWxkQXJnPEJvZHlIZWFkZXI+KTogdGhpcyB7XG4gICAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuI3NlcUJ1aWxkZXIuaGVhZGVyKFtoZWFkZXJdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb21wYW5pb25zKGNvbXBhbmlvbnM6IEJ1aWxkQXJnczxTdGFnZS5Db21wYW5pb25JdGVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNzZXFCdWlsZGVyLmNvbXBhbmlvbnMoW2NvbXBhbmlvbnNdKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29tbWVyY2lhbHNFbmRPZlN0YWdlKFxuICAgICAgICBjb21tZXJjaWFsc0VuZE9mU3RhZ2U6IEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPlxuICAgICk6IHRoaXMge1xuICAgICAgICB0aGlzLiNzZXFCdWlsZGVyLmNvbW1lcmNpYWxzRW5kT2ZTdGFnZShbY29tbWVyY2lhbHNFbmRPZlN0YWdlXSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCk6IEJvZHlTdGFnZSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNzZXFCdWlsZGVyLmJ1aWxkKCk7XG4gICAgfVxufVxuXG5jbGFzcyBCb2R5SGVhZGVyQnVpbGRlciBleHRlbmRzIEFic3RyYWN0QnVpbGRlcjxCb2R5SGVhZGVyPiB7XG4gICAgI3ZhcmlhbnQ6IEJvZHlIZWFkZXJbXCJ2YXJpYW50XCJdID0gXCJmdWxsXCI7XG4gICAgI29wZW5lcj86IE9wZW5lciA9IHVuZGVmaW5lZDtcblxuICAgIHZhcmlhbnQodmFyaWFudDogQm9keUhlYWRlcltcInZhcmlhbnRcIl0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jdmFyaWFudCA9IHZhcmlhbnQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG9wZW5lcihvcGVuZXI6IEJ1aWxkQXJnPE9wZW5lcj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jb3BlbmVyID0gbWFwQnVpbGRBcmcob3BlbmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGQoKTogQm9keUhlYWRlciB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YXJpYW50OiB0aGlzLiN2YXJpYW50LFxuICAgICAgICAgICAgb3BlbmVyOiB0aGlzLiNvcGVuZXIsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBBcnRpY2xlU291cmNlU2VxQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U2VxQnVpbGRlcjxBcnRpY2xlU291cmNlPiB7XG4gICAgI25vZGVzOiBTZXFFbGVtZW50PFJpY2hUZXh0Lk5vZGVbXT4gPSBbXTtcblxuICAgIG5vZGVzKG5vZGVzOiBTZXFFbGVtZW50PEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jbm9kZXMgPSBub2Rlcy5tYXAobWFwQnVpbGRBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGRMaXN0SXRlbShzZXFOZXh0RWxlbWVudDogU2VxTmV4dEVsZW1lbnRDb252ZXJ0ZXIpOiBBcnRpY2xlU291cmNlIHtcbiAgICAgICAgY29uc3QgaWQgPSBoYXNoKFwiYXJ0aWNsZS1zb3VyY2VcIiwgdGhpcy4jbm9kZXMpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBub2Rlczogc2VxTmV4dEVsZW1lbnQuYXJyYXkodGhpcy4jbm9kZXMpLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuY2xhc3MgQXJ0aWNsZVNvdXJjZUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdEJ1aWxkZXI8QXJ0aWNsZVNvdXJjZT4ge1xuICAgICNzZXFCdWlsZGVyOiBBcnRpY2xlU291cmNlU2VxQnVpbGRlciA9IG5ldyBBcnRpY2xlU291cmNlU2VxQnVpbGRlcigpO1xuXG4gICAgY29uc3RydWN0b3IoLi4ubm9kZXM6IEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm5vZGVzKC4uLm5vZGVzKTtcbiAgICB9XG5cbiAgICBub2RlcyguLi5ub2RlczogQnVpbGRBcmdzPFJpY2hUZXh0Lk5vZGU+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuI3NlcUJ1aWxkZXIubm9kZXMoW25vZGVzXSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCk6IEFydGljbGVTb3VyY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy4jc2VxQnVpbGRlci5idWlsZCgpO1xuICAgIH1cbn1cblxuY2xhc3MgQXJ0aWNsZVNvdXJjZXNCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RCdWlsZGVyPEFydGljbGVTb3VyY2VzPiB7XG4gICAgI25vZGVzOiBBcnRpY2xlU291cmNlW10gPSBbXTtcbiAgICAjaGlkZGVuOiBBcnRpY2xlU291cmNlW10gPSBbXTtcblxuICAgIG5vZGVzKC4uLm5vZGVzOiBCdWlsZEFyZ3M8QXJ0aWNsZVNvdXJjZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jbm9kZXMgPSBub2Rlcy5tYXAobWFwQnVpbGRBcmcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBoaWRkZW4oLi4uaGlkZGVuOiBCdWlsZEFyZ3M8QXJ0aWNsZVNvdXJjZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jaGlkZGVuID0gaGlkZGVuLm1hcChtYXBCdWlsZEFyZyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCk6IEFydGljbGVTb3VyY2VzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVzOiB0aGlzLiNub2RlcyxcbiAgICAgICAgICAgIGhpZGRlbjogdGhpcy4jaGlkZGVuLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJub2RlIiwiY3JlYXRlIiwidHJ1c3RCb3giLCJvcGVuZXIiLCJzdGFnZSIsImhlYWRlciIsInNvdXJjZSIsInNvdXJjZXMiLCJzZXEiLCJCb2R5QnVpbGRlciIsIlRydXN0Qm94QnVpbGRlciIsIk9wZW5lckJ1aWxkZXIiLCJCb2R5U3RhZ2VCdWlsZGVyIiwiQm9keUhlYWRlckJ1aWxkZXIiLCJub2RlcyIsIkFydGljbGVTb3VyY2VCdWlsZGVyIiwiQXJ0aWNsZVNvdXJjZXNCdWlsZGVyIiwiQm9keVN0YWdlU2VxQnVpbGRlciIsIkFydGljbGVTb3VyY2VTZXFCdWlsZGVyIiwiQWJzdHJhY3RCdWlsZGVyIiwic3RhZ2VzIiwibWFwIiwibWFwQnVpbGRBcmciLCJkaXNjbGFpbWVyIiwiYXJ0aWNsZVNvdXJjZXMiLCJidWlsZCIsInVuZGVmaW5lZCIsImhpZGRlbiIsImVsZW1lbnQiLCJpbWFnZSIsIkFic3RyYWN0U2VxQnVpbGRlciIsIm1hcEJ1aWxkQXJncyIsImNvbXBhbmlvbnMiLCJjb21tZXJjaWFsc0VuZE9mU3RhZ2UiLCJidWlsZExpc3RJdGVtIiwic2VxTmV4dEVsZW1lbnQiLCJpZCIsImhhc2giLCJhcnJheSIsIm1heWJlIiwic2VxQnVpbGRlciIsInZhcmlhbnQiLCJjb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBMkJZQSxJQUFJO0lBRUhDLE1BQU0sTUFBTkEsTUFBTTtJQUNOQyxRQUFRLE1BQVJBLFFBQVE7SUFFUkMsTUFBTSxNQUFOQSxNQUFNO0lBQ05DLEtBQUssTUFBTEEsS0FBSztJQUVMQyxNQUFNLE1BQU5BLE1BQU07SUFFTkMsTUFBTSxNQUFOQSxNQUFNO0lBS05DLE9BQU8sTUFBUEEsT0FBTztJQUdQQyxHQUFHLE1BQUhBLEdBQUc7Ozs7Ozs7a0NBN0NvQyxvQkFBb0I7OEJBQ3hCLGlCQUFpQjtnQ0FDM0Msa0JBQWtCO29GQXdCMUIsb0JBQW9CO0FBRzNCLE1BQU1QLE1BQU0sR0FBK0IsSUFBTSxJQUFJ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 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2lucHV0L2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0QnVpbGRlciwgQWJzdHJhY3RTZXFCdWlsZGVyIH0gZnJvbSBcIi4vQWJzdHJhY3RCdWlsZGVyc1wiO1xuaW1wb3J0IHsgaGFzaCwgbWFwQnVpbGRBcmcsIG1hcEJ1aWxkQXJncyB9IGZyb20gXCIuL0J1aWxkZXIudXRpbHNcIjtcbmltcG9ydCB7IGltYWdlIH0gZnJvbSBcIi4vRWxlbWVudEJ1aWxkZXJcIjtcblxuaW1wb3J0IHR5cGUge1xuICAgIEJvZHksXG4gICAgQm9keVN0YWdlLFxuICAgIFRydXN0Qm94LFxuICAgIFJpY2hUZXh0LFxuICAgIE9wZW5lcixcbiAgICBCb2R5SGVhZGVyLFxuICAgIFN0YWdlLFxuICAgIEFydGljbGVTb3VyY2UsXG4gICAgQXJ0aWNsZVNvdXJjZXMsXG59IGZyb20gXCJAcGFwZXIvbW9kZWxzXCI7XG5pbXBvcnQgdHlwZSB7XG4gICAgQnVpbGRBcmcsXG4gICAgQnVpbGRBcmdzLFxuICAgIENyZWF0ZUJ1aWxkZXIsXG4gICAgU2VxRWxlbWVudCxcbiAgICBTZXFOZXh0RWxlbWVudENvbnZlcnRlcixcbn0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2Uge0J1aWxkZXIuYm9keS5ub2RlLmltZygpfVxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9Cb2R5Tm9kZXNCdWlsZGVyXCI7XG5leHBvcnQgKiBhcyBub2RlIGZyb20gXCIuL0JvZHlOb2Rlc0J1aWxkZXJcIjtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZTogQ3JlYXRlQnVpbGRlcjxCb2R5QnVpbGRlcj4gPSAoKSA9PiBuZXcgQm9keUJ1aWxkZXIoKTtcbmV4cG9ydCBjb25zdCB0cnVzdEJveDogQ3JlYXRlQnVpbGRlcjxUcnVzdEJveEJ1aWxkZXI+ID0gKCkgPT5cbiAgICBuZXcgVHJ1c3RCb3hCdWlsZGVyKCk7XG5leHBvcnQgY29uc3Qgb3BlbmVyOiBDcmVhdGVCdWlsZGVyPE9wZW5lckJ1aWxkZXI+ID0gKCkgPT4gbmV3IE9wZW5lckJ1aWxkZXIoKTtcbmV4cG9ydCBjb25zdCBzdGFnZTogQ3JlYXRlQnVpbGRlcjxCb2R5U3RhZ2VCdWlsZGVyPiA9ICgpID0+XG4gICAgbmV3IEJvZHlTdGFnZUJ1aWxkZXIoKTtcbmV4cG9ydCBjb25zdCBoZWFkZXI6IENyZWF0ZUJ1aWxkZXI8Qm9keUhlYWRlckJ1aWxkZXI+ID0gKCkgPT5cbiAgICBuZXcgQm9keUhlYWRlckJ1aWxkZXIoKTtcbmV4cG9ydCBjb25zdCBzb3VyY2U6IENyZWF0ZUJ1aWxkZXI8XG4gICAgQXJ0aWNsZVNvdXJjZUJ1aWxkZXIsXG4gICAgQnVpbGRBcmdzPFJpY2hUZXh0Lk5vZGU+XG4+ID0gKG5vZGVzOiBCdWlsZEFyZ3M8UmljaFRleHQuTm9kZT4gPSBbXSkgPT5cbiAgICBuZXcgQXJ0aWNsZVNvdXJjZUJ1aWxkZXIoLi4ubm9kZXMpO1xuZXhwb3J0IGNvbnN0IHNvdXJjZXM6IENyZWF0ZUJ1aWxkZXI8QXJ0aWNsZVNvdXJjZXNCdWlsZGVyPiA9ICgpID0+XG4gICAgbmV3IEFydGljbGVTb3VyY2VzQnVpbGRlcigpO1xuXG5leHBvcnQgY29uc3Qgc2VxID0ge1xuICAgIHN0YWdlOiAoKCkgPT5cbiAgICAgICAgbmV3IEJvZHlTdGFnZVNlcUJ1aWxkZXIoKSkgYXMgQ3JlYXRlQnVpbGRlcjxCb2R5U3RhZ2VTZXFCdWlsZGVyPixcbiAgICBzb3VyY2U6ICgoKSA9PlxuICAgICAgICBuZXcgQXJ0aWNsZVNvdXJjZVNlcUJ1aWxkZXIoKSkgYXMgQ3JlYXRlQnVpbGRlcjxBcnRpY2xlU291cmNlU2VxQnVpbGRlcj4sXG59IGFzIGNvbnN0O1xuXG5jbGFzcyBCb2R5QnVpbGRlciBleHRlbmRzIEFic3RyYWN0QnVpbGRlcjxCb2R5PiB7XG4gICAgI3N0YWdlczogQm9keVN0YWdlW10gPSBbXTtcbiAgICAjdHJ1c3RCb3g/OiBUcnVzdEJveCA9IHVuZGVmaW5lZDtcbiAgICAjZGlzY2xhaW1lcj86IFJpY2hUZXh0Lk5vZGVbXSA9IHVuZGVmaW5lZDtcbiAgICAjYXJ0aWNsZVNvdXJjZXM/OiBBcnRpY2xlU291cmNlcyA9IHVuZGVmaW5lZDtcblxuICAgIHN0YWdlcyguLi5zdGFnZXM6IEJ1aWxkQXJnczxCb2R5U3RhZ2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuI3N0YWdlcyA9IHN0YWdlcy5tYXAobWFwQnVpbGRBcmcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0cnVzdEJveCh0cnVzdEJveD86IEJ1aWxkQXJnPFRydXN0Qm94Pik6IHRoaXMge1xuICAgICAgICB0aGlzLiN0cnVzdEJveCA9IG1hcEJ1aWxkQXJnKHRydXN0Qm94KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZGlzY2xhaW1lcihkaXNjbGFpbWVyPzogQnVpbGRBcmdzPFJpY2hUZXh0Lk5vZGU+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuI2Rpc2NsYWltZXIgPSBkaXNjbGFpbWVyPy5tYXAobWFwQnVpbGRBcmcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBhcnRpY2xlU291cmNlcyhhcnRpY2xlU291cmNlcz86IEJ1aWxkQXJnPEFydGljbGVTb3VyY2VzPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNhcnRpY2xlU291cmNlcyA9IG1hcEJ1aWxkQXJnKGFydGljbGVTb3VyY2VzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGQoKTogQm9keSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGFnZXM6IHRoaXMuI3N0YWdlcyxcbiAgICAgICAgICAgIHRydXN0Qm94OiB0aGlzLiN0cnVzdEJveCxcbiAgICAgICAgICAgIGRpc2NsYWltZXI6IHRoaXMuI2Rpc2NsYWltZXIsXG4gICAgICAgICAgICBhcnRpY2xlU291cmNlczogdGhpcy4jYXJ0aWNsZVNvdXJjZXMsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBUcnVzdEJveEJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdEJ1aWxkZXI8VHJ1c3RCb3g+IHtcbiAgICAjbm9kZXM6IFJpY2hUZXh0Lk5vZGVbXSA9IFtdO1xuICAgICNoaWRkZW46IFJpY2hUZXh0Lk5vZGVbXSA9IFtdO1xuXG4gICAgbm9kZXMobm9kZXM6IEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNub2RlcyA9IG5vZGVzLm1hcChtYXBCdWlsZEFyZyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGhpZGRlbihoaWRkZW46IEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNoaWRkZW4gPSBoaWRkZW4ubWFwKG1hcEJ1aWxkQXJnKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGQoKTogVHJ1c3RCb3gge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbm9kZXM6IHRoaXMuI25vZGVzLFxuICAgICAgICAgICAgaGlkZGVuOiB0aGlzLiNoaWRkZW4sXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBPcGVuZXJCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RCdWlsZGVyPE9wZW5lcj4ge1xuICAgICNlbGVtZW50OiBPcGVuZXJbXCJlbGVtZW50XCJdID0gaW1hZ2UoKS5idWlsZCgpO1xuXG4gICAgZWxlbWVudChlbGVtZW50OiBCdWlsZEFyZzxPcGVuZXJbXCJlbGVtZW50XCJdPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNlbGVtZW50ID0gbWFwQnVpbGRBcmcoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCk6IE9wZW5lciB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLiNlbGVtZW50LFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuY2xhc3MgQm9keVN0YWdlU2VxQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U2VxQnVpbGRlcjxCb2R5U3RhZ2U+IHtcbiAgICAjbm9kZXM6IFNlcUVsZW1lbnQ8UmljaFRleHQuTm9kZVtdPiA9IFtdO1xuICAgICNoZWFkZXI/OiBTZXFFbGVtZW50PEJvZHlIZWFkZXI+ID0gdW5kZWZpbmVkO1xuICAgICNjb21wYW5pb25zOiBTZXFFbGVtZW50PFN0YWdlLkNvbXBhbmlvbkl0ZW1bXT4gPSBbXTtcbiAgICAjY29tbWVyY2lhbHNFbmRPZlN0YWdlOiBTZXFFbGVtZW50PFJpY2hUZXh0Lk5vZGVbXT4gPSBbXTtcblxuICAgIG5vZGVzKG5vZGVzOiBTZXFFbGVtZW50PEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jbm9kZXMgPSBub2Rlcy5tYXAobWFwQnVpbGRBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaGVhZGVyKGhlYWRlcj86IFNlcUVsZW1lbnQ8QnVpbGRBcmc8Qm9keUhlYWRlcj4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuI2hlYWRlciA9IG1hcEJ1aWxkQXJncyhoZWFkZXIgPz8gW10pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb21wYW5pb25zKGNvbXBhbmlvbnM6IFNlcUVsZW1lbnQ8QnVpbGRBcmdzPFN0YWdlLkNvbXBhbmlvbkl0ZW0+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLiNjb21wYW5pb25zID0gY29tcGFuaW9ucy5tYXAobWFwQnVpbGRBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29tbWVyY2lhbHNFbmRPZlN0YWdlKFxuICAgICAgICBjb21tZXJjaWFsc0VuZE9mU3RhZ2U6IFNlcUVsZW1lbnQ8QnVpbGRBcmdzPFJpY2hUZXh0Lk5vZGU+PlxuICAgICk6IHRoaXMge1xuICAgICAgICB0aGlzLiNjb21tZXJjaWFsc0VuZE9mU3RhZ2UgPSBjb21tZXJjaWFsc0VuZE9mU3RhZ2UubWFwKG1hcEJ1aWxkQXJncyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkTGlzdEl0ZW0oc2VxTmV4dEVsZW1lbnQ6IFNlcU5leHRFbGVtZW50Q29udmVydGVyKTogQm9keVN0YWdlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBoYXNoKFxuICAgICAgICAgICAgICAgIFwiYm9keVN0YWdlXCIsXG4gICAgICAgICAgICAgICAgdGhpcy4jbm9kZXMsXG4gICAgICAgICAgICAgICAgdGhpcy4jY29tcGFuaW9ucyxcbiAgICAgICAgICAgICAgICB0aGlzLiNjb21tZXJjaWFsc0VuZE9mU3RhZ2UsXG4gICAgICAgICAgICAgICAgdGhpcy4jaGVhZGVyXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbm9kZXM6IHNlcU5leHRFbGVtZW50LmFycmF5KHRoaXMuI25vZGVzKSxcbiAgICAgICAgICAgIGhlYWRlcjogc2VxTmV4dEVsZW1lbnQubWF5YmUodGhpcy4jaGVhZGVyKSxcbiAgICAgICAgICAgIGNvbXBhbmlvbnM6IHNlcU5leHRFbGVtZW50LmFycmF5KHRoaXMuI2NvbXBhbmlvbnMpLFxuICAgICAgICAgICAgY29tbWVyY2lhbHNFbmRPZlN0YWdlOiBzZXFOZXh0RWxlbWVudC5hcnJheShcbiAgICAgICAgICAgICAgICB0aGlzLiNjb21tZXJjaWFsc0VuZE9mU3RhZ2VcbiAgICAgICAgICAgICksXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBCb2R5U3RhZ2VCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RCdWlsZGVyPEJvZHlTdGFnZT4ge1xuICAgICNzZXFCdWlsZGVyOiBCb2R5U3RhZ2VTZXFCdWlsZGVyID0gbmV3IEJvZHlTdGFnZVNlcUJ1aWxkZXIoKTtcblxuICAgIG5vZGVzKG5vZGVzOiBCdWlsZEFyZ3M8UmljaFRleHQuTm9kZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jc2VxQnVpbGRlci5ub2Rlcyhbbm9kZXNdKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaGVhZGVyKGhlYWRlcj86IEJ1aWxkQXJnPEJvZHlIZWFkZXI+KTogdGhpcyB7XG4gICAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuI3NlcUJ1aWxkZXIuaGVhZGVyKFtoZWFkZXJdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb21wYW5pb25zKGNvbXBhbmlvbnM6IEJ1aWxkQXJnczxTdGFnZS5Db21wYW5pb25JdGVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLiNzZXFCdWlsZGVyLmNvbXBhbmlvbnMoW2NvbXBhbmlvbnNdKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29tbWVyY2lhbHNFbmRPZlN0YWdlKFxuICAgICAgICBjb21tZXJjaWFsc0VuZE9mU3RhZ2U6IEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPlxuICAgICk6IHRoaXMge1xuICAgICAgICB0aGlzLiNzZXFCdWlsZGVyLmNvbW1lcmNpYWxzRW5kT2ZTdGFnZShbY29tbWVyY2lhbHNFbmRPZlN0YWdlXSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCk6IEJvZHlTdGFnZSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNzZXFCdWlsZGVyLmJ1aWxkKCk7XG4gICAgfVxufVxuXG5jbGFzcyBCb2R5SGVhZGVyQnVpbGRlciBleHRlbmRzIEFic3RyYWN0QnVpbGRlcjxCb2R5SGVhZGVyPiB7XG4gICAgI3ZhcmlhbnQ6IEJvZHlIZWFkZXJbXCJ2YXJpYW50XCJdID0gXCJmdWxsXCI7XG4gICAgI29wZW5lcj86IE9wZW5lciA9IHVuZGVmaW5lZDtcblxuICAgIHZhcmlhbnQodmFyaWFudDogQm9keUhlYWRlcltcInZhcmlhbnRcIl0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jdmFyaWFudCA9IHZhcmlhbnQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG9wZW5lcihvcGVuZXI6IEJ1aWxkQXJnPE9wZW5lcj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jb3BlbmVyID0gbWFwQnVpbGRBcmcob3BlbmVyKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGQoKTogQm9keUhlYWRlciB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YXJpYW50OiB0aGlzLiN2YXJpYW50LFxuICAgICAgICAgICAgb3BlbmVyOiB0aGlzLiNvcGVuZXIsXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5jbGFzcyBBcnRpY2xlU291cmNlU2VxQnVpbGRlciBleHRlbmRzIEFic3RyYWN0U2VxQnVpbGRlcjxBcnRpY2xlU291cmNlPiB7XG4gICAgI25vZGVzOiBTZXFFbGVtZW50PFJpY2hUZXh0Lk5vZGVbXT4gPSBbXTtcblxuICAgIG5vZGVzKG5vZGVzOiBTZXFFbGVtZW50PEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jbm9kZXMgPSBub2Rlcy5tYXAobWFwQnVpbGRBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGRMaXN0SXRlbShzZXFOZXh0RWxlbWVudDogU2VxTmV4dEVsZW1lbnRDb252ZXJ0ZXIpOiBBcnRpY2xlU291cmNlIHtcbiAgICAgICAgY29uc3QgaWQgPSBoYXNoKFwiYXJ0aWNsZS1zb3VyY2VcIiwgdGhpcy4jbm9kZXMpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBub2Rlczogc2VxTmV4dEVsZW1lbnQuYXJyYXkodGhpcy4jbm9kZXMpLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuY2xhc3MgQXJ0aWNsZVNvdXJjZUJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdEJ1aWxkZXI8QXJ0aWNsZVNvdXJjZT4ge1xuICAgICNzZXFCdWlsZGVyOiBBcnRpY2xlU291cmNlU2VxQnVpbGRlciA9IG5ldyBBcnRpY2xlU291cmNlU2VxQnVpbGRlcigpO1xuXG4gICAgY29uc3RydWN0b3IoLi4ubm9kZXM6IEJ1aWxkQXJnczxSaWNoVGV4dC5Ob2RlPikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm5vZGVzKC4uLm5vZGVzKTtcbiAgICB9XG5cbiAgICBub2RlcyguLi5ub2RlczogQnVpbGRBcmdzPFJpY2hUZXh0Lk5vZGU+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuI3NlcUJ1aWxkZXIubm9kZXMoW25vZGVzXSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCk6IEFydGljbGVTb3VyY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy4jc2VxQnVpbGRlci5idWlsZCgpO1xuICAgIH1cbn1cblxuY2xhc3MgQXJ0aWNsZVNvdXJjZXNCdWlsZGVyIGV4dGVuZHMgQWJzdHJhY3RCdWlsZGVyPEFydGljbGVTb3VyY2VzPiB7XG4gICAgI25vZGVzOiBBcnRpY2xlU291cmNlW10gPSBbXTtcbiAgICAjaGlkZGVuOiBBcnRpY2xlU291cmNlW10gPSBbXTtcblxuICAgIG5vZGVzKC4uLm5vZGVzOiBCdWlsZEFyZ3M8QXJ0aWNsZVNvdXJjZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jbm9kZXMgPSBub2Rlcy5tYXAobWFwQnVpbGRBcmcpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBoaWRkZW4oLi4uaGlkZGVuOiBCdWlsZEFyZ3M8QXJ0aWNsZVNvdXJjZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy4jaGlkZGVuID0gaGlkZGVuLm1hcChtYXBCdWlsZEFyZyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCk6IEFydGljbGVTb3VyY2VzIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5vZGVzOiB0aGlzLiNub2RlcyxcbiAgICAgICAgICAgIGhpZGRlbjogdGhpcy4jaGlkZGVuLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJub2RlIiwiY3JlYXRlIiwidHJ1c3RCb3giLCJvcGVuZXIiLCJzdGFnZSIsImhlYWRlciIsInNvdXJjZSIsInNvdXJjZXMiLCJzZXEiLCJCb2R5QnVpbGRlciIsIlRydXN0Qm94QnVpbGRlciIsIk9wZW5lckJ1aWxkZXIiLCJCb2R5U3RhZ2VCdWlsZGVyIiwiQm9keUhlYWRlckJ1aWxkZXIiLCJub2RlcyIsIkFydGljbGVTb3VyY2VCdWlsZGVyIiwiQXJ0aWNsZVNvdXJjZXNCdWlsZGVyIiwiQm9keVN0YWdlU2VxQnVpbGRlciIsIkFydGljbGVTb3VyY2VTZXFCdWlsZGVyIiwiQWJzdHJhY3RCdWlsZGVyIiwic3RhZ2VzIiwibWFwIiwibWFwQnVpbGRBcmciLCJkaXNjbGFpbWVyIiwiYXJ0aWNsZVNvdXJjZXMiLCJidWlsZCIsInVuZGVmaW5lZCIsImhpZGRlbiIsImVsZW1lbnQiLCJpbWFnZSIsIkFic3RyYWN0U2VxQnVpbGRlciIsIm1hcEJ1aWxkQXJncyIsImNvbXBhbmlvbnMiLCJjb21tZXJjaWFsc0VuZE9mU3RhZ2UiLCJidWlsZExpc3RJdGVtIiwic2VxTmV4dEVsZW1lbnQiLCJpZCIsImhhc2giLCJhcnJheSIsIm1heWJlIiwic2VxQnVpbGRlciIsInZhcmlhbnQiLCJjb25zdHJ1Y3RvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBMkJZQSxJQUFJO0lBRUhDLE1BQU0sTUFBTkE7SUFDQUMsUUFBUSxNQUFSQTtJQUVBQyxNQUFNLE1BQU5BO0lBQ0FDLEtBQUssTUFBTEE7SUFFQUMsTUFBTSxNQUFOQTtJQUVBQyxNQUFNLE1BQU5BO0lBS0FDLE9BQU8sTUFBUEE7SUFHQUMsR0FBRyxNQUFIQTs7Ozs7OztrQ0E3Q3VDOzhCQUNKO2dDQUMxQjtvRkF3QlI7QUFHUCxNQUFNUCxTQUFxQyxJQUFNLElBQUlRO0FBQ3JELE1BQU1QLFdBQTJDLElBQ3BELElBQUlRO0FBQ0QsTUFBTVAsU0FBdUMsSUFBTSxJQUFJUTtBQUN2RCxNQUFNUCxRQUF5QyxJQUNsRCxJQUFJUTtBQUNELE1BQU1QLFNBQTJDLElBQ3BELElBQUlRO0FBQ0QsTUFBTVAsU0FHVCxDQUFDUSxRQUFrQyxFQUFFLEdBQ3JDLElBQUlDLHdCQUF3QkQ7QUFDekIsTUFBTVAsVUFBZ0QsSUFDekQsSUFBSVM7QUFFRCxNQUFNUixNQUFNO0lBQ2ZKLE9BQVEsSUFDSixJQUFJYTtJQUNSWCxRQUFTLElBQ0wsSUFBSVk7QUFDWjtJQUdJLHVDQUNBLHlDQUNBLDJDQUNBO0FBSkosTUFBTVQsb0JBQW9CVSxpQ0FBZTtJQU1yQ0MsT0FBTyxHQUFHQSxNQUE0QixFQUFRO29DQUNwQ0EsU0FBU0EsT0FBT0MsR0FBRyxDQUFDQyx5QkFBVztRQUNyQyxPQUFPLElBQUk7SUFDZjtJQUVBcEIsU0FBU0EsUUFBNkIsRUFBUTtvQ0FDcENBLFdBQVdvQixJQUFBQSx5QkFBVyxFQUFDcEI7UUFDN0IsT0FBTyxJQUFJO0lBQ2Y7SUFFQXFCLFdBQVdBLFVBQXFDLEVBQVE7b0NBQzlDQSxhQUFhQSxZQUFZRixJQUFJQyx5QkFBVztRQUM5QyxPQUFPLElBQUk7SUFDZjtJQUVBRSxlQUFlQSxjQUF5QyxFQUFRO29DQUN0REEsaUJBQWlCRixJQUFBQSx5QkFBVyxFQUFDRTtRQUNuQyxPQUFPLElBQUk7SUFDZjtJQUVBQyxRQUFjO1FBQ1YsT0FBTztZQUNITCxNQUFNLHdCQUFFLElBQUksRUFBRUE7WUFDZGxCLFFBQVEsd0JBQUUsSUFBSSxFQUFFQTtZQUNoQnFCLFVBQVUsd0JBQUUsSUFBSSxFQUFFQTtZQUNsQkMsY0FBYyx3QkFBRSxJQUFJLEVBQUVBO1FBQzFCO0lBQ0o7OztRQWhDQSw2QkFBQTs7bUJBQXVCLEVBQUU7O1FBQ3pCLDZCQUFBOzttQkFBdUJFOztRQUN2Qiw2QkFBQTs7bUJBQWdDQTs7UUFDaEMsNkJBQUE7O21CQUFtQ0E7OztBQThCdkM7SUFHSSxzQ0FDQTtBQUZKLE1BQU1oQix3QkFBd0JTLGlDQUFlO0lBSXpDTCxNQUFNQSxLQUErQixFQUFRO29DQUNuQ0EsUUFBUUEsTUFBTU8sR0FBRyxDQUFDQyx5QkFBVztRQUNuQyxPQUFPLElBQUk7SUFDZjtJQUVBSyxPQUFPQSxNQUFnQyxFQUFRO29DQUNyQ0EsU0FBU0EsT0FBT04sR0FBRyxDQUFDQyx5QkFBVztRQUNyQyxPQUFPLElBQUk7SUFDZjtJQUVBRyxRQUFrQjtRQUNkLE9BQU87WUFDSFgsS0FBSyx3QkFBRSxJQUFJLEVBQUVBO1lBQ2JhLE1BQU0sd0JBQUUsSUFBSSxFQUFFQTtRQUNsQjtJQUNKOzs7UUFsQkEsNkJBQUE7O21CQUEwQixFQUFFOztRQUM1Qiw2QkFBQTs7bUJBQTJCLEVBQUU7OztBQWtCakM7SUFHSTtBQURKLE1BQU1oQixzQkFBc0JRLGlDQUFlO0lBR3ZDUyxRQUFRQSxPQUFvQyxFQUFRO29DQUMxQ0EsVUFBVU4sSUFBQUEseUJBQVcsRUFBQ007UUFDNUIsT0FBTyxJQUFJO0lBQ2Y7SUFFQUgsUUFBZ0I7UUFDWixPQUFPO1lBQ0hHLE9BQU8sd0JBQUUsSUFBSSxFQUFFQTtRQUNuQjtJQUNKOzs7UUFYQSw2QkFBQTs7bUJBQThCQyxJQUFBQSxxQkFBSyxJQUFHSixLQUFLOzs7QUFZL0M7SUFHSSx1Q0FDQSx1Q0FDQSwyQ0FDQTtBQUpKLE1BQU1SLDRCQUE0QmEsb0NBQWtCO0lBTWhEaEIsTUFBTUEsS0FBMkMsRUFBUTtvQ0FDL0NBLFNBQVFBLE1BQU1PLEdBQUcsQ0FBQ1UsMEJBQVk7UUFDcEMsT0FBTyxJQUFJO0lBQ2Y7SUFFQTFCLE9BQU9BLE1BQXlDLEVBQVE7b0NBQzlDQSxTQUFTMEIsSUFBQUEsMEJBQVksRUFBQzFCLFVBQVUsRUFBRTtRQUN4QyxPQUFPLElBQUk7SUFDZjtJQUVBMkIsV0FBV0EsVUFBc0QsRUFBUTtvQ0FDL0RBLGFBQWFBLFdBQVdYLEdBQUcsQ0FBQ1UsMEJBQVk7UUFDOUMsT0FBTyxJQUFJO0lBQ2Y7SUFFQUUsc0JBQ0lBLHFCQUEyRCxFQUN2RDtvQ0FDRUEsd0JBQXdCQSxzQkFBc0JaLEdBQUcsQ0FBQ1UsMEJBQVk7UUFDcEUsT0FBTyxJQUFJO0lBQ2Y7SUFFQUcsY0FBY0MsY0FBdUMsRUFBYTtRQUM5RCxPQUFPO1lBQ0hDLElBQUlDLElBQUFBLGtCQUFJLEVBQ0osbUNBQ0EsSUFBSSxFQUFFdkIsZ0NBQ04sSUFBSSxFQUFFa0Isb0NBQ04sSUFBSSxFQUFFQywrQ0FDTixJQUFJLEVBQUU1QjtZQUVWUyxPQUFPcUIsZUFBZUcsS0FBSyx1QkFBQyxJQUFJLEVBQUV4QjtZQUNsQ1QsUUFBUThCLGVBQWVJLEtBQUssdUJBQUMsSUFBSSxFQUFFbEM7WUFDbkMyQixZQUFZRyxlQUFlRyxLQUFLLHVCQUFDLElBQUksRUFBRU47WUFDdkNDLHVCQUF1QkUsZUFBZUcsS0FBSyx1QkFDdkMsSUFBSSxFQUFFTDtRQUVkO0lBQ0o7OztRQTNDQSw2QkFBQTs7bUJBQXNDLEVBQUU7O1FBQ3hDLDZCQUFBOzttQkFBbUNQOztRQUNuQyw2QkFBQTs7bUJBQWlELEVBQUU7O1FBQ25ELDZCQUFBOzttQkFBc0QsRUFBRTs7O0FBeUM1RDtJQUdJO0FBREosTUFBTWQseUJBQXlCTyxpQ0FBZTtJQUcxQ0wsTUFBTUEsS0FBK0IsRUFBUTtRQUN6QyxzQkFBQSxJQUFJLEVBQUUwQixhQUFXMUIsS0FBSyxDQUFDO1lBQUNBO1NBQU07UUFDOUIsT0FBTyxJQUFJO0lBQ2Y7SUFFQVQsT0FBT0EsTUFBNkIsRUFBUTtRQUN4QyxJQUFJQSxRQUFRO1lBQ1Isc0JBQUEsSUFBSSxFQUFFbUMsYUFBV25DLE1BQU0sQ0FBQztnQkFBQ0E7YUFBTztRQUNwQyxDQUFDO1FBQ0QsT0FBTyxJQUFJO0lBQ2Y7SUFFQTJCLFdBQVdBLFVBQTBDLEVBQVE7UUFDekQsc0JBQUEsSUFBSSxFQUFFUSxhQUFXUixVQUFVLENBQUM7WUFBQ0E7U0FBVztRQUN4QyxPQUFPLElBQUk7SUFDZjtJQUVBQyxzQkFDSUEscUJBQStDLEVBQzNDO1FBQ0osc0JBQUEsSUFBSSxFQUFFTyxhQUFXUCxxQkFBcUIsQ0FBQztZQUFDQTtTQUFzQjtRQUM5RCxPQUFPLElBQUk7SUFDZjtJQUVBUixRQUFtQjtRQUNmLE9BQU8sc0JBQUEsSUFBSSxFQUFFZSxhQUFXZixLQUFLO0lBQ2pDOzs7UUE1QkEsNkJBQUE7O21CQUFtQyxJQUFJUjs7O0FBNkIzQztJQUdJLHdDQUNBO0FBRkosTUFBTUosMEJBQTBCTSxpQ0FBZTtJQUkzQ3NCLFFBQVFBLE9BQThCLEVBQVE7b0NBQ3BDQSxVQUFVQTtRQUNoQixPQUFPLElBQUk7SUFDZjtJQUVBdEMsT0FBT0EsTUFBd0IsRUFBUTtvQ0FDN0JBLFNBQVNtQixJQUFBQSx5QkFBVyxFQUFDbkI7UUFDM0IsT0FBTyxJQUFJO0lBQ2Y7SUFFQXNCLFFBQW9CO1FBQ2hCLE9BQU87WUFDSGdCLE9BQU8sd0JBQUUsSUFBSSxFQUFFQTtZQUNmdEMsTUFBTSx3QkFBRSxJQUFJLEVBQUVBO1FBQ2xCO0lBQ0o7OztRQWxCQSw2QkFBQTs7bUJBQWtDOztRQUNsQyw2QkFBQTs7bUJBQW1CdUI7OztBQWtCdkI7SUFHSTtBQURKLE1BQU1SLGdDQUFnQ1ksb0NBQWtCO0lBR3BEaEIsTUFBTUEsS0FBMkMsRUFBUTtvQ0FDL0NBLFNBQVFBLE1BQU1PLEdBQUcsQ0FBQ1UsMEJBQVk7UUFDcEMsT0FBTyxJQUFJO0lBQ2Y7SUFFQUcsY0FBY0MsY0FBdUMsRUFBaUI7UUFDbEUsTUFBTUMsS0FBS0MsSUFBQUEsa0JBQUksRUFBQyx3Q0FBa0IsSUFBSSxFQUFFdkI7UUFDeEMsT0FBTztZQUNIc0I7WUFDQXRCLE9BQU9xQixlQUFlRyxLQUFLLHVCQUFDLElBQUksRUFBRXhCO1FBQ3RDO0lBQ0o7OztRQWJBLDZCQUFBOzttQkFBc0MsRUFBRTs7O0FBYzVDO0lBR0k7QUFESixNQUFNQyw2QkFBNkJJLGlDQUFlO0lBUTlDTCxNQUFNLEdBQUdBLEtBQStCLEVBQVE7UUFDNUMsc0JBQUEsSUFBSSxFQUFFMEIsY0FBVzFCLEtBQUssQ0FBQztZQUFDQTtTQUFNO1FBQzlCLE9BQU8sSUFBSTtJQUNmO0lBRUFXLFFBQXVCO1FBQ25CLE9BQU8sc0JBQUEsSUFBSSxFQUFFZSxjQUFXZixLQUFLO0lBQ2pDO0lBWkFpQixZQUFZLEdBQUc1QixLQUErQixDQUFFO1FBQzVDLEtBQUs7UUFIVCw2QkFBQTs7bUJBQXVDLElBQUlJOztRQUl2QyxJQUFJLENBQUNKLEtBQUssSUFBSUE7SUFDbEI7QUFVSjtJQUdJLHVDQUNBO0FBRkosTUFBTUUsOEJBQThCRyxpQ0FBZTtJQUkvQ0wsTUFBTSxHQUFHQSxLQUErQixFQUFRO29DQUN0Q0EsU0FBUUEsTUFBTU8sR0FBRyxDQUFDQyx5QkFBVztRQUNuQyxPQUFPLElBQUk7SUFDZjtJQUVBSyxPQUFPLEdBQUdBLE1BQWdDLEVBQVE7b0NBQ3hDQSxVQUFTQSxPQUFPTixHQUFHLENBQUNDLHlCQUFXO1FBQ3JDLE9BQU8sSUFBSTtJQUNmO0lBRUFHLFFBQXdCO1FBQ3BCLE9BQU87WUFDSFgsS0FBSyx3QkFBRSxJQUFJLEVBQUVBO1lBQ2JhLE1BQU0sd0JBQUUsSUFBSSxFQUFFQTtRQUNsQjtJQUNKOzs7UUFsQkEsNkJBQUE7O21CQUEwQixFQUFFOztRQUM1Qiw2QkFBQTs7bUJBQTJCLEVBQUU7OztBQWtCakMifQ== diff --git a/crates/swc/tests/source_map.rs b/crates/swc/tests/source_map.rs index f96f02787f4b..07653b0e543c 100644 --- a/crates/swc/tests/source_map.rs +++ b/crates/swc/tests/source_map.rs @@ -365,9 +365,9 @@ fn should_work_with_emit_source_map_columns() { .lookup_token(3, 10) .expect("failed to find token"); assert_eq!(token.get_dst_line(), 3); - assert_eq!(token.get_dst_col(), 10); + assert_eq!(token.get_dst_col(), 9); assert_eq!(token.get_src_line(), 4); - assert_eq!(token.get_src_col(), 12); + assert_eq!(token.get_src_col(), 11); } Err(err) => { panic!("Error: {:#?}", err); diff --git a/crates/swc_common/src/syntax_pos.rs b/crates/swc_common/src/syntax_pos.rs index 2fc3b1a380c5..35147ccccb78 100644 --- a/crates/swc_common/src/syntax_pos.rs +++ b/crates/swc_common/src/syntax_pos.rs @@ -1001,6 +1001,8 @@ impl BytePos { /// Dummy position. This is reserved for synthesized spans. pub const DUMMY: Self = BytePos(0); const MIN_RESERVED: Self = BytePos(DUMMY_RESERVE); + /// Synthesized, but should be stored in a source map. + pub const SYNTHESIZED: Self = BytePos(u32::MAX); pub const fn is_reserved_for_comments(self) -> bool { self.0 >= Self::MIN_RESERVED.0 && self.0 != u32::MAX @@ -1185,7 +1187,7 @@ pub struct LineInfo { } /// Used to create a `.map` file. -#[derive(Copy, Clone, Debug, PartialEq, Eq)] +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)] pub struct LineCol { pub line: u32, pub col: u32, diff --git a/crates/swc_ecma_codegen/Cargo.toml b/crates/swc_ecma_codegen/Cargo.toml index 1292ed68a84f..14deb839678f 100644 --- a/crates/swc_ecma_codegen/Cargo.toml +++ b/crates/swc_ecma_codegen/Cargo.toml @@ -26,14 +26,16 @@ swc_ecma_codegen_macros = { version = "0.7.1", path = "../swc_ecma_codegen_macro tracing = "0.1.32" [dev-dependencies] +base64 = "0.13" criterion = "0.3" +serde_json = "1" swc_common = { version = "0.29.0", path = "../swc_common", features = [ "sourcemap", ] } swc_ecma_parser = { version = "0.122.1", path = "../swc_ecma_parser" } +swc_ecma_testing = { version = "0.20.1", path = "../swc_ecma_testing" } swc_node_base = { version = "0.5.0", path = "../swc_node_base" } testing = { version = "0.31.0", path = "../testing" } - [[bench]] harness = false name = "bench" diff --git a/crates/swc_ecma_codegen/src/decl.rs b/crates/swc_ecma_codegen/src/decl.rs index 78f065bdd0d2..eeffaf6bb669 100644 --- a/crates/swc_ecma_codegen/src/decl.rs +++ b/crates/swc_ecma_codegen/src/decl.rs @@ -17,7 +17,7 @@ where Decl::Fn(ref n) => emit!(n), Decl::Var(ref n) => { - self.emit_var_decl_inner(n, false)?; + self.emit_var_decl_inner(n)?; formatting_semi!(); srcmap!(n, false); } @@ -67,6 +67,8 @@ where fn emit_fn_decl(&mut self, node: &FnDecl) -> Result { self.emit_leading_comments_of_span(node.span(), false)?; + self.wr.commit_pending_semi()?; + srcmap!(node, true); if node.declare { @@ -94,12 +96,14 @@ where #[emitter] fn emit_var_decl(&mut self, node: &VarDecl) -> Result { - self.emit_var_decl_inner(node, true)?; + self.emit_var_decl_inner(node)?; } - fn emit_var_decl_inner(&mut self, node: &VarDecl, last_source_map: bool) -> Result { + fn emit_var_decl_inner(&mut self, node: &VarDecl) -> Result { self.emit_leading_comments_of_span(node.span, false)?; + self.wr.commit_pending_semi()?; + srcmap!(self, node, true); if node.declare { @@ -128,10 +132,6 @@ where ListFormat::VariableDeclarationList, )?; - if last_source_map { - srcmap!(self, node, false); - } - Ok(()) } @@ -149,8 +149,6 @@ where formatting_space!(); emit!(init); } - - srcmap!(node, false); } } diff --git a/crates/swc_ecma_codegen/src/lib.rs b/crates/swc_ecma_codegen/src/lib.rs index 5a73ebf31fc1..545ec2e3460e 100644 --- a/crates/swc_ecma_codegen/src/lib.rs +++ b/crates/swc_ecma_codegen/src/lib.rs @@ -105,7 +105,6 @@ where emit!(stmt); } - srcmap!(node, false); self.emit_trailing_comments_of_pos(node.span().hi, true, true)?; if !self.cfg.omit_last_semi { self.wr.commit_pending_semi()?; @@ -127,8 +126,6 @@ where emit!(stmt); } - srcmap!(node, false); - self.emit_trailing_comments_of_pos(node.span().hi, true, true)?; if !self.cfg.omit_last_semi { self.wr.commit_pending_semi()?; @@ -493,6 +490,7 @@ where } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_lit(&mut self, node: &Lit) -> Result { self.emit_leading_comments_of_span(node.span(), false)?; @@ -509,6 +507,7 @@ where Lit::BigInt(ref s) => emit!(s), Lit::Num(ref n) => emit!(n), Lit::Regex(ref n) => { + srcmap!(n, true); punct!("/"); self.wr.write_str(&n.exp)?; punct!("/"); @@ -525,7 +524,10 @@ where } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_str_lit(&mut self, node: &Str) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(node.span(), false)?; srcmap!(node, true); @@ -566,10 +568,11 @@ where } } - srcmap!(node, false); + // srcmap!(node, false); } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_num_lit(&mut self, num: &Number) -> Result { self.emit_num_lit_internal(num, false)?; } @@ -581,6 +584,8 @@ where num: &Number, detect_dot: bool, ) -> std::result::Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(num.span(), false)?; // Handle infinity @@ -596,9 +601,11 @@ where let mut striped_raw = None; let mut value = String::default(); + srcmap!(self, num, true); + if self.cfg.minify { value = minify_number(num.value); - self.wr.write_str_lit(num.span, &value)?; + self.wr.write_str_lit(DUMMY_SP, &value)?; } else { match &num.raw { Some(raw) => { @@ -607,17 +614,17 @@ where slice == b"0b" || slice == b"0o" || slice == b"0B" || slice == b"0O" } { value = num.value.to_string(); - self.wr.write_str_lit(num.span, &value)?; + self.wr.write_str_lit(DUMMY_SP, &value)?; } else if raw.len() > 2 && self.cfg.target < EsVersion::Es2021 && raw.contains('_') { let value = raw.replace('_', ""); - self.wr.write_str_lit(num.span, &value)?; + self.wr.write_str_lit(DUMMY_SP, &value)?; striped_raw = Some(value); } else { - self.wr.write_str_lit(num.span, raw)?; + self.wr.write_str_lit(DUMMY_SP, raw)?; if !detect_dot { return Ok(false); @@ -628,7 +635,7 @@ where } _ => { value = num.value.to_string(); - self.wr.write_str_lit(num.span, &value)?; + self.wr.write_str_lit(DUMMY_SP, &value)?; } } } @@ -745,6 +752,7 @@ where } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_expr(&mut self, node: &Expr) -> Result { match node { Expr::Array(ref n) => emit!(n), @@ -835,6 +843,8 @@ where #[emitter] fn emit_call_expr(&mut self, node: &CallExpr) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(node.span(), false)?; srcmap!(node, true); @@ -845,10 +855,12 @@ where self.emit_expr_or_spreads(node.span(), &node.args, ListFormat::CallExpressionArguments)?; punct!(")"); - srcmap!(node, false); + // srcmap!(node, false); } fn emit_new(&mut self, node: &NewExpr, should_ignore_empty_args: bool) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(node.span(), false)?; srcmap!(self, node, true); @@ -876,7 +888,7 @@ where } } - srcmap!(self, node, false); + // srcmap!(self, node, false); // if it's false, it means it doesn't come from emit_expr, // we need to compensate that @@ -1017,8 +1029,6 @@ where punct!("=>"); emit!(node.body); - - srcmap!(node, false); } #[emitter] @@ -1027,10 +1037,12 @@ where self.emit_leading_comments_of_span(node.span(), false)?; } + srcmap!(node, true); + match node.kind { - MetaPropKind::ImportMeta => keyword!(node.span, "import.meta"), + MetaPropKind::ImportMeta => keyword!("import.meta"), - MetaPropKind::NewTarget => keyword!(node.span, "new.target"), + MetaPropKind::NewTarget => keyword!("new.target"), } } @@ -1060,15 +1072,11 @@ where fn emit_assign_expr(&mut self, node: &AssignExpr) -> Result { self.emit_leading_comments_of_span(node.span(), false)?; - srcmap!(node, true); - emit!(node.left); formatting_space!(); operator!(node.op.as_str()); formatting_space!(); emit!(node.right); - - srcmap!(node, false); } /// Prints operator and right node of a binary expression. @@ -1167,8 +1175,6 @@ where } self.emit_bin_expr_trailing(node)?; - - srcmap!(node, false); } #[emitter] @@ -1226,14 +1232,17 @@ where } formatting_space!(); + punct!("{"); + self.emit_list(node.span, Some(&node.body), ListFormat::ClassMembers)?; - punct!("}"); - srcmap!(node, false); + srcmap!(node, false, true); + punct!("}"); } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_class_member(&mut self, node: &ClassMember) -> Result { match *node { ClassMember::Constructor(ref n) => emit!(n), @@ -1301,7 +1310,7 @@ where fn emit_class_method(&mut self, n: &ClassMethod) -> Result { self.emit_leading_comments_of_span(n.span(), false)?; - // srcmap!(n, true); + srcmap!(n, true); for d in &n.function.decorators { emit!(d); @@ -1505,6 +1514,7 @@ where } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_class_constructor(&mut self, n: &Constructor) -> Result { self.emit_leading_comments_of_span(n.span(), false)?; @@ -1581,6 +1591,8 @@ where fn emit_fn_expr(&mut self, n: &FnExpr) -> Result { self.emit_leading_comments_of_span(n.span(), false)?; + self.wr.commit_pending_semi()?; + srcmap!(n, true); if n.function.is_async { @@ -1626,7 +1638,7 @@ where semi!(); } - srcmap!(node, false); + // srcmap!(node, false); } #[emitter] @@ -1770,8 +1782,6 @@ where } emit!(n.arg); - - srcmap!(n, false); } #[emitter] @@ -1788,8 +1798,6 @@ where emit!(node.arg); operator!(node.op.as_str()); } - - srcmap!(node, false); } #[emitter] @@ -1811,8 +1819,6 @@ where } emit!(node.arg); } - - srcmap!(node, false); } fn emit_expr_or_spreads( @@ -1847,8 +1853,6 @@ where space!(); emit!(&n.arg); - - srcmap!(n, false); } #[emitter] @@ -1897,9 +1901,8 @@ where self.wr.write_line()?; } + srcmap!(node, false, true); punct!("}"); - - srcmap!(node, false); } #[emitter] @@ -1932,10 +1935,6 @@ where self.wr.add_srcmap(value_span.lo)?; } emit!(node.value); - - if !value_span.is_dummy() { - self.wr.add_srcmap(value_span.hi)?; - } } #[emitter] @@ -1947,8 +1946,6 @@ where emit!(node.key); punct!("="); emit!(node.value); - - srcmap!(node, false); } #[emitter] @@ -1974,8 +1971,6 @@ where punct!(")"); formatting_space!(); emit!(node.body); - - srcmap!(node, false); } #[emitter] @@ -2005,8 +2000,6 @@ where punct!(")"); emit!(node.body); - - srcmap!(node, false); } #[emitter] @@ -2032,15 +2025,17 @@ where #[emitter] fn emit_paren_expr(&mut self, node: &ParenExpr) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(node.span(), false)?; srcmap!(node, true); punct!("("); emit!(node.expr); - punct!(")"); - srcmap!(node, false); + srcmap!(node, false, true); + punct!(")"); } #[emitter] @@ -2076,9 +2071,13 @@ where // TODO: Use write_symbol when ident is a symbol. self.emit_leading_comments_of_span(ident.span, false)?; + // Source map + self.wr.commit_pending_semi()?; + + srcmap!(ident, true); // TODO: span self.wr - .write_symbol(ident.span, &handle_invalid_unicodes(&ident.sym))?; + .write_symbol(DUMMY_SP, &handle_invalid_unicodes(&ident.sym))?; if ident.optional { punct!("?"); } @@ -2382,9 +2381,7 @@ where fn emit_rest_pat(&mut self, node: &RestPat) -> Result { self.emit_leading_comments_of_span(node.span(), false)?; - srcmap!(node, true); - - punct!("..."); + punct!(node.dot3_token, "..."); emit!(node.arg); if let Some(type_ann) = &node.type_ann { @@ -2392,8 +2389,6 @@ where formatting_space!(); emit!(type_ann); } - - srcmap!(node, false); } #[emitter] @@ -2602,21 +2597,17 @@ where } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_expr_stmt(&mut self, e: &ExprStmt) -> Result { let expr_span = e.expr.span(); emit!(e.expr); - let span = if expr_span.hi == e.span.hi { - DUMMY_SP - } else { - Span::new(expr_span.hi, e.span.hi, Default::default()) - }; - - semi!(span); + semi!(); } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_block_stmt(&mut self, node: &BlockStmt) -> Result { self.emit_leading_comments_of_span(node.span(), false)?; @@ -2649,6 +2640,8 @@ where #[emitter] fn emit_debugger_stmt(&mut self, node: &DebuggerStmt) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(node.span(), false)?; keyword!(node.span, "debugger"); @@ -2657,6 +2650,10 @@ where #[emitter] fn emit_with_stmt(&mut self, node: &WithStmt) -> Result { + self.wr.commit_pending_semi()?; + + srcmap!(node, true); + keyword!("with"); formatting_space!(); @@ -2755,6 +2752,8 @@ where #[emitter] fn emit_return_stmt(&mut self, n: &ReturnStmt) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(n.span, false)?; srcmap!(n, true); @@ -2780,13 +2779,14 @@ where punct!(")"); } } - semi!(); - srcmap!(n, false); + semi!(); } #[emitter] fn emit_labeled_stmt(&mut self, node: &LabeledStmt) -> Result { + self.wr.commit_pending_semi()?; + emit!(node.label); // TODO: Comment @@ -2798,6 +2798,8 @@ where #[emitter] fn emit_break_stmt(&mut self, n: &BreakStmt) -> Result { + self.wr.commit_pending_semi()?; + srcmap!(n, true); keyword!("break"); @@ -2806,13 +2808,15 @@ where space!(); emit!(label); } - semi!(); srcmap!(n, false); + semi!(); } #[emitter] fn emit_continue_stmt(&mut self, n: &ContinueStmt) -> Result { + self.wr.commit_pending_semi()?; + srcmap!(n, true); keyword!("continue"); @@ -2821,15 +2825,17 @@ where space!(); emit!(label); } - semi!(); srcmap!(n, false); + semi!(); } #[emitter] fn emit_if_stmt(&mut self, n: &IfStmt) -> Result { self.emit_leading_comments_of_span(n.span(), false)?; + self.wr.commit_pending_semi()?; + srcmap!(n, true); keyword!("if"); @@ -2865,6 +2871,8 @@ where #[emitter] fn emit_switch_stmt(&mut self, n: &SwitchStmt) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(n.span(), false)?; srcmap!(n, true); @@ -2877,9 +2885,9 @@ where punct!("{"); self.emit_list(n.span(), Some(&n.cases), ListFormat::CaseBlockClauses)?; - punct!("}"); - srcmap!(n, false); + srcmap!(n, false, true); + punct!("}"); } #[emitter] @@ -2901,8 +2909,6 @@ where formatting_space!(); emit!(n.body); - - srcmap!(n, false); } #[emitter] @@ -2945,8 +2951,6 @@ where punct!(":"); } self.emit_list(n.span(), Some(&n.cons), format)?; - - srcmap!(n, false); } #[emitter] @@ -2978,9 +2982,12 @@ where } #[emitter] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn emit_try_stmt(&mut self, n: &TryStmt) -> Result { self.emit_leading_comments_of_span(n.span(), false)?; + self.wr.commit_pending_semi()?; + srcmap!(n, true); keyword!("try"); @@ -2999,12 +3006,12 @@ where // space!(); emit!(finally); } - - srcmap!(n, false); } #[emitter] fn emit_while_stmt(&mut self, node: &WhileStmt) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(node.span(), false)?; srcmap!(node, true); @@ -3016,12 +3023,12 @@ where punct!(")"); emit!(node.body); - - srcmap!(node, false); } #[emitter] fn emit_do_while_stmt(&mut self, node: &DoWhileStmt) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(node.span(), false)?; srcmap!(node, true); @@ -3051,6 +3058,8 @@ where #[emitter] fn emit_for_stmt(&mut self, n: &ForStmt) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(n.span(), false)?; srcmap!(n, true); @@ -3066,12 +3075,12 @@ where punct!(")"); emit!(n.body); - - srcmap!(n, false); } #[emitter] fn emit_for_in_stmt(&mut self, n: &ForInStmt) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(n.span(), false)?; srcmap!(n, true); @@ -3102,12 +3111,12 @@ where punct!(")"); emit!(n.body); - - srcmap!(n, false); } #[emitter] fn emit_for_of_stmt(&mut self, n: &ForOfStmt) -> Result { + self.wr.commit_pending_semi()?; + self.emit_leading_comments_of_span(n.span(), false)?; srcmap!(n, true); @@ -3140,8 +3149,6 @@ where } punct!(")"); emit!(n.body); - - srcmap!(n, false); } #[emitter] diff --git a/crates/swc_ecma_codegen/src/macros.rs b/crates/swc_ecma_codegen/src/macros.rs index 000393872808..3fdf71f65290 100644 --- a/crates/swc_ecma_codegen/src/macros.rs +++ b/crates/swc_ecma_codegen/src/macros.rs @@ -107,6 +107,15 @@ macro_rules! semi { /// - `srcmap!(false)` for end (span.hi) macro_rules! srcmap { ($emitter:expr, $n:expr, true) => {{ + #[cfg(debug_assertions)] + let _span = tracing::span!( + tracing::Level::ERROR, + "srcmap", + file = file!(), + line = line!() + ) + .entered(); + let lo = $n.span_lo(); if !lo.is_dummy() { $emitter.wr.add_srcmap(lo)?; @@ -116,6 +125,15 @@ macro_rules! srcmap { srcmap!($emitter, $n, false, false) }; ($emitter:expr, $n:expr, false, $subtract:expr) => { + #[cfg(debug_assertions)] + let _span = tracing::span!( + tracing::Level::ERROR, + "srcmap", + file = file!(), + line = line!() + ) + .entered(); + let hi = $n.span_hi(); if !hi.is_dummy() { if $subtract { diff --git a/crates/swc_ecma_codegen/src/text_writer/basic_impl.rs b/crates/swc_ecma_codegen/src/text_writer/basic_impl.rs index 9637a27b655b..e8f559b6bf51 100644 --- a/crates/swc_ecma_codegen/src/text_writer/basic_impl.rs +++ b/crates/swc_ecma_codegen/src/text_writer/basic_impl.rs @@ -44,6 +44,7 @@ impl<'a, W: Write> JsWriter<'a, W> { } } + #[inline] fn write_indent_string(&mut self) -> Result { const INDENT: &str = " "; @@ -54,14 +55,21 @@ impl<'a, W: Write> JsWriter<'a, W> { Ok(()) } + #[inline] fn raw_write(&mut self, data: &str) -> Result { + #[cfg(debug_assertions)] + tracing::trace!("Write: `{}`", data); + self.wr.write_all(data.as_bytes())?; if self.srcmap.is_some() { self.line_pos += data.chars().count(); } + Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write(&mut self, span: Option, data: &str) -> Result { if !data.is_empty() { if self.line_start { @@ -74,25 +82,22 @@ impl<'a, W: Write> JsWriter<'a, W> { } if let Some(span) = span { - if !span.is_dummy() { - self.srcmap(span.lo()) - } + self.srcmap(span.lo()); } self.raw_write(data)?; if let Some(span) = span { - if !span.is_dummy() { - self.srcmap(span.hi()) - } + self.srcmap(span.hi()); } } Ok(()) } + #[inline] fn srcmap(&mut self, byte_pos: BytePos) { - if byte_pos.is_dummy() { + if byte_pos.is_dummy() && byte_pos != BytePos(u32::MAX) { return; } @@ -105,6 +110,10 @@ impl<'a, W: Write> JsWriter<'a, W> { line: self.line_count as _, col: self.line_pos as _, }; + + #[cfg(debug_assertions)] + tracing::trace!("SourceMap: {:?} => {:?}", byte_pos, loc); + srcmap.push((byte_pos, loc)); } } @@ -112,46 +121,64 @@ impl<'a, W: Write> JsWriter<'a, W> { } impl<'a, W: Write> WriteJs for JsWriter<'a, W> { + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn increase_indent(&mut self) -> Result { self.indent += 1; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn decrease_indent(&mut self) -> Result { self.indent -= 1; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_semi(&mut self, span: Option) -> Result { self.write(span, ";")?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_space(&mut self) -> Result { self.write(None, " ")?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_keyword(&mut self, span: Option, s: &'static str) -> Result { self.write(span, s)?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_operator(&mut self, span: Option, s: &str) -> Result { self.write(span, s)?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_param(&mut self, s: &str) -> Result { self.write(None, s)?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_property(&mut self, s: &str) -> Result { self.write(None, s)?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_line(&mut self) -> Result { let pending = self.pending_srcmap.take(); if !self.line_start { @@ -168,11 +195,11 @@ impl<'a, W: Write> WriteJs for JsWriter<'a, W> { Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_lit(&mut self, span: Span, s: &str) -> Result { if !s.is_empty() { - if !span.is_dummy() { - self.srcmap(span.lo()) - } + self.srcmap(span.lo()); self.write(None, s)?; @@ -185,14 +212,14 @@ impl<'a, W: Write> WriteJs for JsWriter<'a, W> { } } - if !span.is_dummy() { - self.srcmap(span.hi()) - } + self.srcmap(span.hi()); } Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_comment(&mut self, s: &str) -> Result { self.write(None, s)?; if self.srcmap.is_some() { @@ -206,12 +233,11 @@ impl<'a, W: Write> WriteJs for JsWriter<'a, W> { Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_str_lit(&mut self, span: Span, s: &str) -> Result { if !s.is_empty() { - if !span.is_dummy() { - self.srcmap(span.lo()) - } - + self.srcmap(span.lo()); self.write(None, s)?; if self.srcmap.is_some() { @@ -223,33 +249,41 @@ impl<'a, W: Write> WriteJs for JsWriter<'a, W> { } } - if !span.is_dummy() { - self.srcmap(span.hi()) - } + self.srcmap(span.hi()); } Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_str(&mut self, s: &str) -> Result { self.write(None, s)?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_symbol(&mut self, span: Span, s: &str) -> Result { self.write(Some(span), s)?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn write_punct(&mut self, span: Option, s: &'static str) -> Result { self.write(span, s)?; Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn care_about_srcmap(&self) -> bool { self.srcmap.is_some() } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn add_srcmap(&mut self, pos: BytePos) -> Result { if self.line_start { self.pending_srcmap = Some(pos); @@ -259,6 +293,8 @@ impl<'a, W: Write> WriteJs for JsWriter<'a, W> { Ok(()) } + #[inline] + #[cfg_attr(debug_assertions, tracing::instrument(skip_all))] fn commit_pending_semi(&mut self) -> Result { Ok(()) } diff --git a/crates/swc_ecma_codegen/tests/sourcemap.rs b/crates/swc_ecma_codegen/tests/sourcemap.rs new file mode 100644 index 000000000000..416a9e59f7d5 --- /dev/null +++ b/crates/swc_ecma_codegen/tests/sourcemap.rs @@ -0,0 +1,507 @@ +#![feature(bench_black_box)] + +use std::{fs::read_to_string, path::PathBuf}; + +use rustc_hash::FxHashSet; +use sourcemap::SourceMap; +use swc_common::{comments::SingleThreadedComments, source_map::SourceMapGenConfig}; +use swc_ecma_ast::EsVersion; +use swc_ecma_codegen::{self, text_writer::WriteJs, Emitter}; +use swc_ecma_parser::{lexer::Lexer, Parser, StringInput, Syntax}; +use swc_ecma_testing::{exec_node_js, JsExecOptions}; + +static IGNORED_PASS_TESTS: &[&str] = &[ + // Temporally ignored + "431ecef8c85d4d24.js", + "8386fbff927a9e0e.js", + "5654d4106d7025c2.js", + // Stack size (Stupid parens) + "6b5e7e125097d439.js", + "714be6d28082eaa7.js", + "882910de7dd1aef9.js", + "dd3c63403db5c06e.js", + // Wrong tests (variable name or value is different) + "0339fa95c78c11bd.js", + "0426f15dac46e92d.js", + "0b4d61559ccce0f9.js", + "0f88c334715d2489.js", + "1093d98f5fc0758d.js", + "15d9592709b947a0.js", + "2179895ec5cc6276.js", + "247a3a57e8176ebd.js", + "441a92357939904a.js", + "47f974d6fc52e3e4.js", + "4e1a0da46ca45afe.js", + "5829d742ab805866.js", + "589dc8ad3b9aa28f.js", + "598a5cedba92154d.js", + "72d79750e81ef03d.js", + "7788d3c1e1247da9.js", + "7b72d7b43bedc895.js", + "7dab6e55461806c9.js", + "82c827ccaecbe22b.js", + "87a9b0d1d80812cc.js", + "8c80f7ee04352eba.js", + "96f5d93be9a54573.js", + "988e362ed9ddcac5.js", + "9bcae7c7f00b4e3c.js", + "a8a03a88237c4e8f.js", + "ad06370e34811a6a.js", + "b0fdc038ee292aba.js", + "b62c6dd890bef675.js", + "cb211fadccb029c7.js", + "ce968fcdf3a1987c.js", + "db3c01738aaf0b92.js", + "e1387fe892984e2b.js", + "e71c1d5f0b6b833c.js", + "e8ea384458526db0.js", + // We don't implement Annex B fully. + "1c1e2a43fe5515b6.js", + "3dabeca76119d501.js", + "52aeec7b8da212a2.js", + "59ae0289778b80cd.js", + "a4d62a651f69d815.js", + "c06df922631aeabc.js", + // swc_common issue - `\r` should be treated as a newline + "be2c3fff6426873e.js", + "db66e1e8f3f1faef.js", + "a7b8ce1d4c0f0bc2.js", + "6498dcc494193cb4.js", + "6a240463b40550d2.js", + // TODO: (maybe) fix span of `,` + "641ac9060a206183.js", + "e4cef19dab44335a.js", + "a6806d6fedbf6759.js", + "2dc0ded5a1bff643.js", + "547fa50af16beca7.js", + "547fa50af16beca7.js", + "8c8a7a2941fb6d64.js", + "9e98dbfde77e3dfe.js", + "d9eb39b11bc766f4.js", + "f9888fa1a1e366e7.js", + "78cf02220fb0937c.js", + // TODO(kdy1): Non-ascii char count + "58cb05d17f7ec010.js", + "4d2c7020de650d40.js", + "dafb7abe5b9b44f5.js", + // Our one is better + "1efde9ddd9d6e6ce.module.js", + "d010d377bcfd5565.js", + "ce0aaec02d5d4465.js", + "edd1f39f90576180.js", + "290fdc5a2f826ead.js", + "e71a91c61343cdb1.js", + "409f30dc7efe75d5.js", + "03608b6e222ae700.js", + "e54c1a2fc15cd4b8.js", + "e08e181172bad2b1.js", + "cc793d44a11617e7.js", + "54e70df597a4f9a3.js", + "efef19e06f58fdd9.js", + "e0fc2148b455a6be.js", + "10857a84ed2962f1.js", + "d7c7ff252e84e81d.js", + "0aa6aab640155051.js", + "c80d9415dde647cd.js", + "09e84f25af85b836.js", + "ce8c443eb361e1a2.js", + "affd557fd820e1f2.js", + "ec99a663d6f3983d.js", + "01fd8e8a0a42307b.js", + "e01c7172cf204b92.js", + "12d5bedf1812952a.js", + "df20c9b7a7d534cb.js", + "c767fa4d683aa3ce.js", + "bf8ffad512a5f568.js", + "c8513472857eae9c.js", + "b86b0122e80c330e.js", + "aa7e721756949024.js", + "a830df7cf2e74c9f.js", + "845631d1a33b3409.js", + "066b76285ce79182.js", + "fe2d3b945530c806.js", + "bd28a7d19ac0d50b.js", + "06c7efc128ce74a0.js", + "075c7204d0b0af60.js", + "0827a8316cca777a.js", + "b9a0cb6df76a73d2.js", + "bf210a4f0cf9e352.js", + "6edc155d463535cb.js", + "b8f8dfc41df97add.js", + "b549d045fc8e93bf.js", + "e42f306327c0f578.js", + "9a9cb616daadf90a.js", + "d2ae1c7b6e55143f.js", + "a445a478b4ce0c58.js", + "0d137e8a97ffe083.js", + "b7a6a807ae6db312.js", + "bb8b546cf9db5996.js", + "50ac15a08f7c812f.js", + "a2cb5a14559c6a50.js", + "bbff5671643cc2ea.js", + "c2f12d66ce17d5ab.js", + "13045bfdda0434e0.js", + "10d6486502949e74.js", + "119e9dce4feae643.js", + "1223609b0f7a2129.js", + "177fef3d002eb873.js", + "19ffea7e9e887e08.js", + "1c6c67fcd71f2d08.js", + "1cdce2d337e64b4f.js", + "1f039e0eeb1bc271.js", + "227118dffd2c9935.js", + "250ced8c8e83b389.js", + "a2798917405b080b.js", + "ad6bf12aa7eda975.js", + "24fa28a37061a18f.js", + "252bb992a448270e.js", + "285648c16156804f.js", + "2d10fed2af94fbd1.js", + "3097f73926c93640.js", + "30aee1020fc69090.js", + "312f85fecc352681.js", + "317532451c2ce8ff.js", + "32b635a9667a9fb1.js", + "36224cf8215ad8e4.js", + "37e4a6eca1ece7e5.js", + "38284ea2d9914d86.js", + "3b57183c81070eec.js", + "3bbd75d597d54fe6.js", + "3c1e2ada0ac2b8e3.js", + "3e1a6f702041b599.js", + "3e3a99768a4a1502.js", + "3e69c5cc1a7ac103.js", + "3eac36e29398cdc5.js", + "3ff52d86c77678bd.js", + "43023cd549deee77.js", + "44af28febe2288cc.js", + "478ede4cfe7906d5.js", + "4869454dd215468e.js", + "48b6f8ce65d3b3ee.js", + "4c71e11fbbc56349.js", + "4d833cbc56caaaf9.js", + "4e7c58761e24d77c.js", + "4e7c58761e24d77c.js", + "5641ad33abcd1752.js", + "587400d1c019785a.js", + "58ed6ffb30191684.js", + "5b8d2b991d2c1f5b.js", + "5f730961df66e8e8.js", + "597108fd45a6e79b.js", + "60dcd48a3f6af44f.js", + "62d7c1ee4e1626c4.js", + "665f4940c7cf30c9.js", + "64cc57f82a54b7fb.js", + "66d2dbcb692491ec.module.js", + "697b3d30c1d06918.js", + "698a8cfb0705c277.js", + "69bbdc7c34ed23cc.js", + "6a323491fe75918a.js", + "6b76b8761a049c19.js", + "70bf2c409480ae10.js", + "74c5ebda713c8bd7.js", + "75172741c27c7703.js", + "753a8b016a700975.js", + "77c661b2fbe3dd3a.js", + "784a059faa166072.js", + "7855fbf5ea10e622.js", + "7cd7c68a6131f816.js", + "7df2a606ecc6cd84.js", + "7dfb625b91c5c879.js", + "7fdf990c6f42edcd.module.js", + "80d2351a5ae68524.js", + "84250e15785d8a9e.js", + "85263ecacc7a4dc5.js", + "8628cd459b39ffe8.js", + "870a0b8d891753e9.js", + "8d14286a8cc6ee9d.js", + "8d67ad04bfc356c9.js", + "8ecaef2617d8c6a7.js", + "918e105a2ff6c64a.js", + "92fd8e24864fde0a.js", + "94b8a654a87039b9.js", + "94cb828d5dcfd136.js", + "98df58b0c40fac90.js", + "9949a2e1a6844836.module.js", + "99cdfc40e20af6f5.js", + "9a666205cafd530f.js", + "a454d2e2ab3484e6.js", + "a54cca69085ad35a.js", + "a86a29773d1168d3.js", + "b205355de22689d1.js", + "b93d116fd0409637.js", + "c85bc4de504befc7.js", + "c8689b6da6fd227a.js", + "cda499c521ff60c7.js", + "d4b898b45172a637.js", + "e2ac0bea41202dc9.js", + "f01d9f3c7b2b2717.js", + "f15772354efa5ecf.js", + "f17ec9517a3339d9.js", + "fa5b398eeef697a6.js", + "fa9eaf58f51d6926.js", + "faa4a026e1e86145.js", + "fada2c7bbfabe14a.js", + "fb8db7a71f3755fc.js", + "fbde237f11796df9.js", + "fd5ea844fcc07d3d.js", + "6c5f0dd83c417a5a.js", + "78eb22badc114b6f.js", + "7afd38d79e6795a8.js", + "80950061e291542b.js", + "8a0fc8ea31727188.module.js", + "af97a3752e579223.js", + "bbffb851469a3f0e.js", + "bc302492d441d561.js", + "be2fd5888f434cbd.js", + "f3260491590325af.js", +]; + +#[testing::fixture("../swc_ecma_parser/tests/test262-parser/pass/*.js")] +fn identity(entry: PathBuf) { + let file_name = entry + .file_name() + .unwrap() + .to_str() + .expect("to_str() failed") + .to_string(); + + let input = read_to_string(&entry).unwrap(); + + let ignore = IGNORED_PASS_TESTS.contains(&&*file_name); + + if ignore { + return; + } + + let is_module = file_name.contains("module"); + + let msg = format!( + "\n\n========== Running codegen test {}\nSource:\n{}\n", + file_name, input + ); + let mut wr = vec![]; + + ::testing::run_test(false, |cm, handler| { + let fm = cm.load_file(&entry).expect("failed to load file"); + eprintln!( + "{}\nPos: {:?} ~ {:?} (L{})", + msg, + fm.start_pos, + fm.end_pos, + fm.count_lines() + ); + let (expected_code, expected_map, visualizer_url_for_expected) = + match get_expected(&fm.src, is_module) { + Some(v) => v, + None => return Ok(()), + }; + println!("Expected code:\n{}", expected_code); + let expected_tokens = print_source_map(&expected_map); + + let comments = SingleThreadedComments::default(); + let lexer = Lexer::new( + Syntax::default(), + Default::default(), + (&*fm).into(), + Some(&comments), + ); + let mut parser: Parser> = Parser::new_from(lexer); + let mut src_map = vec![]; + + { + let mut wr = Box::new(swc_ecma_codegen::text_writer::JsWriter::new( + cm.clone(), + "\n", + &mut wr, + Some(&mut src_map), + )) as Box; + + wr = Box::new(swc_ecma_codegen::text_writer::omit_trailing_semi(wr)); + + let mut emitter = Emitter { + cfg: swc_ecma_codegen::Config { + minify: true, + target: EsVersion::Es5, + ascii_only: true, + ..Default::default() + }, + cm: cm.clone(), + wr, + comments: None, + }; + + // Parse source + if is_module { + emitter + .emit_module( + &parser + .parse_module() + .map_err(|e| e.into_diagnostic(handler).emit())?, + ) + .unwrap(); + } else { + emitter + .emit_script( + &parser + .parse_script() + .map_err(|e| e.into_diagnostic(handler).emit())?, + ) + .unwrap(); + } + } + + let actual_code = String::from_utf8(wr).unwrap(); + let actual_map = cm.build_source_map_with_config(&mut src_map, None, SourceMapConfigImpl); + + let visualizer_url_for_actual = visualizer_url(&actual_code, &actual_map); + + let actual_tokens = print_source_map(&actual_map); + + let common_tokens = actual_tokens + .iter() + .filter(|a| expected_tokens.contains(&**a)) + .map(|v| v.to_string()) + .collect::>(); + + let actual_tokens_diff = actual_tokens + .iter() + .filter(|a| !common_tokens.contains(&**a)) + .map(|v| v.to_string()) + .collect::>(); + let expected_tokens_diff = expected_tokens + .iter() + .filter(|a| !common_tokens.contains(&**a)) + .map(|v| v.to_string()) + .collect::>(); + eprintln!("---- Actual -----"); + for s in actual_tokens_diff { + eprintln!("{}", s); + } + eprintln!("---- Expected -----"); + for s in expected_tokens_diff { + eprintln!("{}", s); + } + + dbg!(&src_map); + + if actual_code != expected_code { + // Generated code is different + // We can't ensure that identical sourcemap will mean identical code + eprintln!("Actual code:\n{}", actual_code); + eprintln!("Expected code:\n{}", expected_code); + return Ok(()); + } + + eprintln!( + "----- Visualizer -----\nExpected: {}\nActual: {}", + visualizer_url_for_expected, visualizer_url_for_actual + ); + + assert_eq_same_map(&expected_map, &actual_map); + Ok(()) + }) + .expect("failed to run test"); +} + +fn get_expected(code: &str, is_module: bool) -> Option<(String, SourceMap, String)> { + let output = exec_node_js( + include_str!("./srcmap.mjs"), + JsExecOptions { + cache: true, + module: true, + args: vec![ + code.to_string(), + if is_module { + "module".into() + } else { + "script".into() + }, + ], + }, + ) + .ok()?; + + let v = serde_json::from_str::>(&output).unwrap(); + + let code = v.get("code").unwrap().as_str().unwrap(); + let map = v.get("map").unwrap().as_str().unwrap(); + + let map = SourceMap::from_slice(map.as_bytes()).expect("invalid sourcemap"); + + let visualizer_url = visualizer_url(code, &map); + + Some((code.to_string(), map, visualizer_url)) +} + +fn print_source_map(map: &SourceMap) -> Vec { + let mut v = map + .tokens() + .map(|t| { + format!( + "Token: {}:{} => {}:{}", + t.get_src_line(), + t.get_src_col(), + t.get_dst_line(), + t.get_dst_col() + ) + }) + .collect::>(); + + v.sort(); + v +} + +fn assert_eq_same_map(expected: &SourceMap, actual: &SourceMap) { + for expected_token in expected.tokens() { + let actual_token = actual + .lookup_token(expected_token.get_dst_line(), expected_token.get_dst_col()) + .unwrap_or_else(|| panic!("token not found: {:?}", expected_token)); + + if expected_token.get_src_line() == 0 && expected_token.get_src_col() == 0 { + continue; + } + + assert_eq!( + expected_token.get_src_line(), + actual_token.get_src_line(), + "line mismatch at {}:{}", + expected_token.get_dst_line(), + expected_token.get_dst_col() + ); + assert_eq!( + expected_token.get_src_col(), + actual_token.get_src_col(), + "col mismatch at {}:{}", + expected_token.get_dst_line(), + expected_token.get_dst_col() + ); + } +} + +/// Creates a url for https://evanw.github.io/source-map-visualization/ +fn visualizer_url(code: &str, map: &SourceMap) -> String { + let map = { + let mut buf = vec![]; + map.to_writer(&mut buf).unwrap(); + String::from_utf8(buf).unwrap() + }; + + let code_len = format!("{}\0", code.len()); + let map_len = format!("{}\0", map.len()); + let hash = base64::encode(format!("{}{}{}{}", code_len, code, map_len, map)); + + format!("https://evanw.github.io/source-map-visualization/#{}", hash) +} + +struct SourceMapConfigImpl; + +impl SourceMapGenConfig for SourceMapConfigImpl { + fn file_name_to_source(&self, f: &swc_common::FileName) -> String { + f.to_string() + } + + fn inline_sources_content(&self, _: &swc_common::FileName) -> bool { + true + } +} diff --git a/crates/swc_ecma_codegen/tests/srcmap.mjs b/crates/swc_ecma_codegen/tests/srcmap.mjs new file mode 100644 index 000000000000..2d0b8a21da6b --- /dev/null +++ b/crates/swc_ecma_codegen/tests/srcmap.mjs @@ -0,0 +1,29 @@ +import { minify } from "terser"; + +try { + const code = process.argv[1]; + + const output = await minify(code, { + sourceMap: { + filename: 'input.js', + includeSources: true, + }, + compress: false, + mangle: false, + }); + + console.log(JSON.stringify({ + code: output.code, + map: output.map, + })) +} catch (e) { + // Ignore syntax error + if (e.toString().includes("SyntaxError")) { + console.log(JSON.stringify({ + code: '', + map: '{}', + })); + } else { + throw e; + } +} \ No newline at end of file diff --git a/crates/swc_ecma_parser/tests/span/js/srcmap/1/input.js b/crates/swc_ecma_parser/tests/span/js/srcmap/1/input.js new file mode 100644 index 000000000000..1709024521ae --- /dev/null +++ b/crates/swc_ecma_parser/tests/span/js/srcmap/1/input.js @@ -0,0 +1 @@ +switch (a) { case 1: b(); break; } \ No newline at end of file diff --git a/crates/swc_ecma_parser/tests/span/js/srcmap/1/input.js.spans b/crates/swc_ecma_parser/tests/span/js/srcmap/1/input.js.spans new file mode 100644 index 000000000000..c4d4210324f0 --- /dev/null +++ b/crates/swc_ecma_parser/tests/span/js/srcmap/1/input.js.spans @@ -0,0 +1,114 @@ + + x Module + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + `---- + + x ModuleItem + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + `---- + + x Stmt + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + `---- + + x SwitchStmt + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + `---- + + x Expr + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^ + `---- + + x Ident + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^ + `---- + + x SwitchCase + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^^^^^^^^^^^^^^^^ + `---- + + x Expr + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^ + `---- + + x Lit + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^ + `---- + + x Number + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^ + `---- + + x Stmt + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^ + `---- + + x ExprStmt + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^ + `---- + + x Expr + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^ + `---- + + x CallExpr + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^ + `---- + + x Callee + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^ + `---- + + x Expr + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^ + `---- + + x Ident + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^ + `---- + + x Stmt + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^^^ + `---- + + x BreakStmt + ,-[$DIR/tests/span/js/srcmap/1/input.js:1:1] + 1 | switch (a) { case 1: b(); break; } + : ^^^^^^ + `---- diff --git a/crates/swc_ecma_parser/tests/span/js/srcmap/2/input.js b/crates/swc_ecma_parser/tests/span/js/srcmap/2/input.js new file mode 100644 index 000000000000..f3f5c2c168a4 --- /dev/null +++ b/crates/swc_ecma_parser/tests/span/js/srcmap/2/input.js @@ -0,0 +1,2 @@ +/*a +b*/ 1 \ No newline at end of file diff --git a/crates/swc_ecma_parser/tests/span/js/srcmap/2/input.js.spans b/crates/swc_ecma_parser/tests/span/js/srcmap/2/input.js.spans new file mode 100644 index 000000000000..5ea3c9b01c37 --- /dev/null +++ b/crates/swc_ecma_parser/tests/span/js/srcmap/2/input.js.spans @@ -0,0 +1,42 @@ + + x Module + ,-[$DIR/tests/span/js/srcmap/2/input.js:2:1] + 2 | b*/ 1 + : ^ + `---- + + x ModuleItem + ,-[$DIR/tests/span/js/srcmap/2/input.js:2:1] + 2 | b*/ 1 + : ^ + `---- + + x Stmt + ,-[$DIR/tests/span/js/srcmap/2/input.js:2:1] + 2 | b*/ 1 + : ^ + `---- + + x ExprStmt + ,-[$DIR/tests/span/js/srcmap/2/input.js:2:1] + 2 | b*/ 1 + : ^ + `---- + + x Expr + ,-[$DIR/tests/span/js/srcmap/2/input.js:2:1] + 2 | b*/ 1 + : ^ + `---- + + x Lit + ,-[$DIR/tests/span/js/srcmap/2/input.js:2:1] + 2 | b*/ 1 + : ^ + `---- + + x Number + ,-[$DIR/tests/span/js/srcmap/2/input.js:2:1] + 2 | b*/ 1 + : ^ + `---- diff --git a/crates/swc_ecma_parser/tests/span/js/srcmap/3/input.js b/crates/swc_ecma_parser/tests/span/js/srcmap/3/input.js new file mode 100644 index 000000000000..56a6051ca2b0 --- /dev/null +++ b/crates/swc_ecma_parser/tests/span/js/srcmap/3/input.js @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/crates/swc_ecma_parser/tests/span/js/srcmap/3/input.js.spans b/crates/swc_ecma_parser/tests/span/js/srcmap/3/input.js.spans new file mode 100644 index 000000000000..dfc2a43bdebc --- /dev/null +++ b/crates/swc_ecma_parser/tests/span/js/srcmap/3/input.js.spans @@ -0,0 +1,42 @@ + + x Module + ,-[$DIR/tests/span/js/srcmap/3/input.js:1:1] + 1 | 1 + : ^ + `---- + + x ModuleItem + ,-[$DIR/tests/span/js/srcmap/3/input.js:1:1] + 1 | 1 + : ^ + `---- + + x Stmt + ,-[$DIR/tests/span/js/srcmap/3/input.js:1:1] + 1 | 1 + : ^ + `---- + + x ExprStmt + ,-[$DIR/tests/span/js/srcmap/3/input.js:1:1] + 1 | 1 + : ^ + `---- + + x Expr + ,-[$DIR/tests/span/js/srcmap/3/input.js:1:1] + 1 | 1 + : ^ + `---- + + x Lit + ,-[$DIR/tests/span/js/srcmap/3/input.js:1:1] + 1 | 1 + : ^ + `---- + + x Number + ,-[$DIR/tests/span/js/srcmap/3/input.js:1:1] + 1 | 1 + : ^ + `---- diff --git a/package.json b/package.json index 3b52921b384b..585a1a4042e9 100644 --- a/package.json +++ b/package.json @@ -89,6 +89,7 @@ "devDependencies": { "@babel/compat-data": "^7.17.0", "@babel/core": "^7.13.16", + "@babel/generator": "^7.18.13", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-decorators": "^7.13.15", "@babel/plugin-proposal-object-rest-spread": "^7.13.8",