blob: 8fa757cfef5bbc46f7fb0c30c367190758c41bc4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# @babel/plugin-transform-object-super
> Compile ES2015 object super to ES5
## Examples
**In**
```javascript
let obj = {
say () {
return "Hello"
}
}
let obj2 = {
say () {
return super.say() + "World!"
}
}
```
**Out**
```javascript
var _obj;
var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var obj = {
say: function say() {
return "Hello";
}
};
var obj2 = _obj = {
say: function say() {
return _get(_obj.__proto__ || Object.getPrototypeOf(_obj), "say", this).call(this) + "World!";
}
};
```
## Installation
```sh
npm install --save-dev @babel/plugin-transform-object-super
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
```json
{
"plugins": ["@babel/plugin-transform-object-super"]
}
```
### Via CLI
```sh
babel --plugins @babel/plugin-transform-object-super script.js
```
### Via Node API
```javascript
require("@babel/core").transform("code", {
plugins: ["@babel/plugin-transform-object-super"]
});
```
|