aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@babel/plugin-transform-new-target
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/plugin-transform-new-target')
-rw-r--r--node_modules/@babel/plugin-transform-new-target/README.md104
-rw-r--r--node_modules/@babel/plugin-transform-new-target/lib/index.js89
-rw-r--r--node_modules/@babel/plugin-transform-new-target/package.json23
3 files changed, 0 insertions, 216 deletions
diff --git a/node_modules/@babel/plugin-transform-new-target/README.md b/node_modules/@babel/plugin-transform-new-target/README.md
deleted file mode 100644
index ccd5b4a4..00000000
--- a/node_modules/@babel/plugin-transform-new-target/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# @babel/plugin-transform-new-target
-
-This plugins allows babel to transform `new.target` meta property into a
-(correct in most cases) `this.constructor` expression.
-
-## Example
-
-```js
-function Foo() {
- console.log(new.target);
-}
-
-Foo(); // => undefined
-new Foo(); // => Foo
-```
-
-```js
-class Foo {
- constructor() {
- console.log(new.target);
- }
-}
-
-class Bar extends Foo {
-}
-
-new Foo(); // => Foo
-new Bar(); // => Bar
-```
-
-### Caveats
-
-This plugin relies on `this.constructor`, which means `super` must
-already have been called when using untransformed classes.
-
-```js
-class Foo {}
-
-class Bar extends Foo {
- constructor() {
- // This will be a problem if classes aren't transformed to ES5
- new.target;
- super();
- }
-}
-```
-
-Additionally, this plugin cannot transform all `Reflect.construct` cases
-when using `newTarget` with ES5 function classes (transformed ES6 classes).
-
-```js
-function Foo() {
- console.log(new.target);
-}
-
-// Bar extends Foo in ES5
-function Bar() {
- Foo.call(this);
-}
-Bar.prototype = Object.create(Foo.prototype);
-Bar.prototype.constructor = Bar;
-
-// Baz does not extend Foo
-function Baz() {}
-
-Reflect.construct(Foo, []); // => Foo (correct)
-Reflect.construct(Foo, [], Bar); // => Bar (correct)
-
-Reflect.construct(Bar, []); // => Bar (incorrect, though this is how ES5
- // inheritience is commonly implemented.)
-Reflect.construct(Foo, [], Baz); // => undefined (incorrect)
-```
-
-## Installation
-
-```sh
-npm install --save-dev @babel/plugin-transform-new-target
-```
-
-## Usage
-
-### Via `.babelrc` (Recommended)
-
-**.babelrc**
-
-```json
-{
- "plugins": ["@babel/plugin-transform-new-target"]
-}
-```
-
-### Via CLI
-
-```sh
-babel --plugins @babel/plugin-transform-new-target script.js
-```
-
-### Via Node API
-
-```javascript
-require("@babel/core").transform("code", {
- plugins: ["@babel/plugin-transform-new-target"]
-});
-```
diff --git a/node_modules/@babel/plugin-transform-new-target/lib/index.js b/node_modules/@babel/plugin-transform-new-target/lib/index.js
deleted file mode 100644
index c8491997..00000000
--- a/node_modules/@babel/plugin-transform-new-target/lib/index.js
+++ /dev/null
@@ -1,89 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.default = void 0;
-
-function _helperPluginUtils() {
- const data = require("@babel/helper-plugin-utils");
-
- _helperPluginUtils = function _helperPluginUtils() {
- return data;
- };
-
- return data;
-}
-
-function _core() {
- const data = require("@babel/core");
-
- _core = function _core() {
- return data;
- };
-
- return data;
-}
-
-var _default = (0, _helperPluginUtils().declare)(api => {
- api.assertVersion(7);
- return {
- name: "transform-new-target",
- visitor: {
- MetaProperty(path) {
- const meta = path.get("meta");
- const property = path.get("property");
- const scope = path.scope;
-
- if (meta.isIdentifier({
- name: "new"
- }) && property.isIdentifier({
- name: "target"
- })) {
- const func = path.findParent(path => {
- if (path.isClass()) return true;
-
- if (path.isFunction() && !path.isArrowFunctionExpression()) {
- if (path.isClassMethod({
- kind: "constructor"
- })) {
- return false;
- }
-
- return true;
- }
-
- return false;
- });
-
- if (!func) {
- throw path.buildCodeFrameError("new.target must be under a (non-arrow) function or a class.");
- }
-
- const node = func.node;
-
- if (!node.id) {
- if (func.isMethod()) {
- path.replaceWith(scope.buildUndefinedNode());
- return;
- }
-
- node.id = scope.generateUidIdentifier("target");
- }
-
- const constructor = _core().types.memberExpression(_core().types.thisExpression(), _core().types.identifier("constructor"));
-
- if (func.isClass()) {
- path.replaceWith(constructor);
- return;
- }
-
- path.replaceWith(_core().types.conditionalExpression(_core().types.binaryExpression("instanceof", _core().types.thisExpression(), _core().types.cloneNode(node.id)), constructor, scope.buildUndefinedNode()));
- }
- }
-
- }
- };
-});
-
-exports.default = _default; \ No newline at end of file
diff --git a/node_modules/@babel/plugin-transform-new-target/package.json b/node_modules/@babel/plugin-transform-new-target/package.json
deleted file mode 100644
index b5cbf22d..00000000
--- a/node_modules/@babel/plugin-transform-new-target/package.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "name": "@babel/plugin-transform-new-target",
- "version": "7.0.0-beta.47",
- "description": "Transforms new.target meta property",
- "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-new-target",
- "license": "MIT",
- "main": "lib/index.js",
- "keywords": [
- "babel-plugin"
- ],
- "dependencies": {
- "@babel/helper-plugin-utils": "7.0.0-beta.47"
- },
- "peerDependencies": {
- "@babel/core": "7.0.0-beta.47"
- },
- "devDependencies": {
- "@babel/core": "7.0.0-beta.47",
- "@babel/helper-plugin-test-runner": "7.0.0-beta.47",
- "@babel/plugin-proposal-class-properties": "7.0.0-beta.47",
- "@babel/plugin-transform-arrow-functions": "7.0.0-beta.47"
- }
-}