diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:43:05 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 22:18:30 +0800 |
| commit | 89e95b3f143682ed9a006991bacf45c9dcba4818 (patch) | |
| tree | 4f44cf41b828577d583890bdd5a1c31e8491a6ba /node_modules/@babel/plugin-transform-new-target/README.md | |
| parent | aa7f0199255277949790b41c56e8ec97dd4f0da4 (diff) | |
| download | xmake-docs-89e95b3f143682ed9a006991bacf45c9dcba4818.tar.gz xmake-docs-89e95b3f143682ed9a006991bacf45c9dcba4818.zip | |
remove node_modulesvuepress
Diffstat (limited to 'node_modules/@babel/plugin-transform-new-target/README.md')
| -rw-r--r-- | node_modules/@babel/plugin-transform-new-target/README.md | 104 |
1 files changed, 0 insertions, 104 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"] -}); -``` |
