UNPKG

motion

Version:

motion - moving development forward

76 lines (53 loc) 1.11 kB
# babel-plugin-proto-to-assign The `proto-to-assign`plugin will transform all `__proto__` assignments to a method that will do a shallow copy of all properties. This means that the following **will** work: ```javascript var foo = { a: 1 }; var bar = { b: 2 }; bar.__proto__ = foo; bar.a; // 1 bar.b; // 2 ``` however the following **will not**: ```javascript var foo = { a: 1 }; var bar = { b: 2 }; bar.__proto__ = foo; bar.a; // 1 foo.a = 2; bar.a; // 1 - should be 2 but remember that nothing is bound and it's a straight copy ``` This is a case that you have to be aware of if you intend to use this plugin. ## Example **In** ```javascript bar.__proto__ = foo; ``` **Out** ```javascript var _defaults = ...; _defaults(bar, foo); ``` ## Installation ```sh $ npm install babel-plugin-proto-to-assign ``` ## Usage ### Via `.babelrc` (Recommended) **.babelrc** ```json { "plugins": ["proto-to-assign"] } ``` ### Via CLI ```sh $ babel --plugins proto-to-assign script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { plugins: ["proto-to-assign"] }); ```