@babel/plugin-transform-object-super
Advanced tools
+1
-1
@@ -14,3 +14,3 @@ import { declare } from '@babel/helper-plugin-utils'; | ||
| var index = declare(api => { | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.2"); | ||
| api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.3"); | ||
| const newLets = new Set(); | ||
@@ -17,0 +17,0 @@ return { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport { types as t } from \"@babel/core\";\nimport type { File, NodePath } from \"@babel/core\";\n\nfunction replacePropertySuper(\n path: NodePath<t.ObjectMethod>,\n getObjectRef: () => t.Identifier,\n file: File,\n) {\n // @ts-expect-error todo(flow->ts):\n const replaceSupers = new ReplaceSupers({\n getObjectRef: getObjectRef,\n methodPath: path,\n file: file,\n });\n\n replaceSupers.replace();\n}\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n const newLets = new Set<{\n scopePath: NodePath;\n id: t.Identifier;\n }>();\n\n return {\n name: \"transform-object-super\",\n\n visitor: {\n Loop: {\n exit(path) {\n newLets.forEach(v => {\n if (v.scopePath === path) {\n path.scope.push({\n id: v.id,\n kind: \"let\",\n });\n path.scope.crawl();\n path.requeue();\n newLets.delete(v);\n }\n });\n },\n },\n ObjectExpression(path, state) {\n let objectRef: t.Identifier;\n const getObjectRef = () =>\n (objectRef = objectRef || path.scope.generateUidIdentifier(\"obj\"));\n\n path.get(\"properties\").forEach(propPath => {\n if (!propPath.isMethod()) return;\n\n replacePropertySuper(propPath, getObjectRef, state.file);\n });\n\n if (objectRef) {\n const scopePath = path.findParent(\n p => p.isFunction() || p.isProgram() || p.isLoop(),\n );\n const useLet = scopePath.isLoop();\n // For transform-block-scoping\n if (useLet) {\n newLets.add({ scopePath, id: t.cloneNode(objectRef) });\n } else {\n path.scope.push({\n id: t.cloneNode(objectRef),\n kind: \"var\",\n });\n }\n\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(objectRef), path.node),\n );\n }\n },\n },\n };\n});\n"],"names":["replacePropertySuper","path","getObjectRef","file","replaceSupers","ReplaceSupers","methodPath","replace","declare","api","assertVersion","newLets","Set","name","visitor","Loop","exit","forEach","v","scopePath","scope","push","id","kind","crawl","requeue","delete","ObjectExpression","state","objectRef","generateUidIdentifier","get","propPath","isMethod","findParent","p","isFunction","isProgram","isLoop","useLet","add","t","cloneNode","replaceWith","assignmentExpression","node"],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport { types as t } from \"@babel/core\";\nimport type { File, NodePath } from \"@babel/core\";\n\nfunction replacePropertySuper(\n path: NodePath<t.ObjectMethod>,\n getObjectRef: () => t.Identifier,\n file: File,\n) {\n const replaceSupers = new ReplaceSupers({\n getObjectRef: getObjectRef,\n methodPath: path,\n file: file,\n });\n\n replaceSupers.replace();\n}\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n const newLets = new Set<{\n scopePath: NodePath;\n id: t.Identifier;\n }>();\n\n return {\n name: \"transform-object-super\",\n\n visitor: {\n Loop: {\n exit(path) {\n newLets.forEach(v => {\n if (v.scopePath === path) {\n path.scope.push({\n id: v.id,\n kind: \"let\",\n });\n path.scope.crawl();\n path.requeue();\n newLets.delete(v);\n }\n });\n },\n },\n ObjectExpression(path, state) {\n let objectRef: t.Identifier | undefined;\n const getObjectRef = () =>\n (objectRef = objectRef || path.scope.generateUidIdentifier(\"obj\"));\n\n path.get(\"properties\").forEach(propPath => {\n if (!propPath.isMethod()) return;\n\n replacePropertySuper(propPath, getObjectRef, state.file);\n });\n\n if (objectRef) {\n const scopePath = path.findParent(\n p => p.isFunction() || p.isProgram() || p.isLoop(),\n )!;\n const useLet = scopePath.isLoop();\n // For transform-block-scoping\n if (useLet) {\n newLets.add({ scopePath, id: t.cloneNode(objectRef) });\n } else {\n path.scope.push({\n id: t.cloneNode(objectRef),\n kind: \"var\",\n });\n }\n\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(objectRef), path.node),\n );\n }\n },\n },\n };\n});\n"],"names":["replacePropertySuper","path","getObjectRef","file","replaceSupers","ReplaceSupers","methodPath","replace","declare","api","assertVersion","newLets","Set","name","visitor","Loop","exit","forEach","v","scopePath","scope","push","id","kind","crawl","requeue","delete","ObjectExpression","state","objectRef","generateUidIdentifier","get","propPath","isMethod","findParent","p","isFunction","isProgram","isLoop","useLet","add","t","cloneNode","replaceWith","assignmentExpression","node"],"mappings":";;;;AAKA,SAASA,oBAAoBA,CAC3BC,IAA8B,EAC9BC,YAAgC,EAChCC,IAAU,EACV;AACA,EAAA,MAAMC,aAAa,GAAG,IAAIC,aAAa,CAAC;AACtCH,IAAAA,YAAY,EAAEA,YAAY;AAC1BI,IAAAA,UAAU,EAAEL,IAAI;AAChBE,IAAAA,IAAI,EAAEA;AACR,GAAC,CAAC;EAEFC,aAAa,CAACG,OAAO,EAAE;AACzB;AAEA,YAAeC,OAAO,CAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAA,kCAAoB,CAAC;AACtC,EAAA,MAAMC,OAAO,GAAG,IAAIC,GAAG,EAGnB;EAEJ,OAAO;AACLC,IAAAA,IAAI,EAAE,wBAAwB;AAE9BC,IAAAA,OAAO,EAAE;AACPC,MAAAA,IAAI,EAAE;QACJC,IAAIA,CAACf,IAAI,EAAE;AACTU,UAAAA,OAAO,CAACM,OAAO,CAACC,CAAC,IAAI;AACnB,YAAA,IAAIA,CAAC,CAACC,SAAS,KAAKlB,IAAI,EAAE;AACxBA,cAAAA,IAAI,CAACmB,KAAK,CAACC,IAAI,CAAC;gBACdC,EAAE,EAAEJ,CAAC,CAACI,EAAE;AACRC,gBAAAA,IAAI,EAAE;AACR,eAAC,CAAC;AACFtB,cAAAA,IAAI,CAACmB,KAAK,CAACI,KAAK,EAAE;cAClBvB,IAAI,CAACwB,OAAO,EAAE;AACdd,cAAAA,OAAO,CAACe,MAAM,CAACR,CAAC,CAAC;AACnB,YAAA;AACF,UAAA,CAAC,CAAC;AACJ,QAAA;OACD;AACDS,MAAAA,gBAAgBA,CAAC1B,IAAI,EAAE2B,KAAK,EAAE;AAC5B,QAAA,IAAIC,SAAmC;AACvC,QAAA,MAAM3B,YAAY,GAAGA,MAClB2B,SAAS,GAAGA,SAAS,IAAI5B,IAAI,CAACmB,KAAK,CAACU,qBAAqB,CAAC,KAAK,CAAE;QAEpE7B,IAAI,CAAC8B,GAAG,CAAC,YAAY,CAAC,CAACd,OAAO,CAACe,QAAQ,IAAI;AACzC,UAAA,IAAI,CAACA,QAAQ,CAACC,QAAQ,EAAE,EAAE;UAE1BjC,oBAAoB,CAACgC,QAAQ,EAAE9B,YAAY,EAAE0B,KAAK,CAACzB,IAAI,CAAC;AAC1D,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI0B,SAAS,EAAE;UACb,MAAMV,SAAS,GAAGlB,IAAI,CAACiC,UAAU,CAC/BC,CAAC,IAAIA,CAAC,CAACC,UAAU,EAAE,IAAID,CAAC,CAACE,SAAS,EAAE,IAAIF,CAAC,CAACG,MAAM,EAClD,CAAE;AACF,UAAA,MAAMC,MAAM,GAAGpB,SAAS,CAACmB,MAAM,EAAE;AAEjC,UAAA,IAAIC,MAAM,EAAE;YACV5B,OAAO,CAAC6B,GAAG,CAAC;cAAErB,SAAS;AAAEG,cAAAA,EAAE,EAAEmB,KAAC,CAACC,SAAS,CAACb,SAAS;AAAE,aAAC,CAAC;AACxD,UAAA,CAAC,MAAM;AACL5B,YAAAA,IAAI,CAACmB,KAAK,CAACC,IAAI,CAAC;AACdC,cAAAA,EAAE,EAAEmB,KAAC,CAACC,SAAS,CAACb,SAAS,CAAC;AAC1BN,cAAAA,IAAI,EAAE;AACR,aAAC,CAAC;AACJ,UAAA;UAEAtB,IAAI,CAAC0C,WAAW,CACdF,KAAC,CAACG,oBAAoB,CAAC,GAAG,EAAEH,KAAC,CAACC,SAAS,CAACb,SAAS,CAAC,EAAE5B,IAAI,CAAC4C,IAAI,CAC/D,CAAC;AACH,QAAA;AACF,MAAA;AACF;GACD;AACH,CAAC,CAAC;;;;"} |
+6
-6
| { | ||
| "name": "@babel/plugin-transform-object-super", | ||
| "version": "8.0.0-rc.2", | ||
| "version": "8.0.0-rc.3", | ||
| "description": "Compile ES2015 object super to ES5", | ||
@@ -20,11 +20,11 @@ "repository": { | ||
| "dependencies": { | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.2", | ||
| "@babel/helper-replace-supers": "^8.0.0-rc.2" | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.3", | ||
| "@babel/helper-replace-supers": "^8.0.0-rc.3" | ||
| }, | ||
| "peerDependencies": { | ||
| "@babel/core": "^8.0.0-rc.2" | ||
| "@babel/core": "^8.0.0-rc.3" | ||
| }, | ||
| "devDependencies": { | ||
| "@babel/core": "^8.0.0-rc.2", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.2" | ||
| "@babel/core": "^8.0.0-rc.3", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.3" | ||
| }, | ||
@@ -31,0 +31,0 @@ "engines": { |
9407
-1.49%