New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
preset-env: Edge support for arrow param destructuring #8926
preset-env: Edge support for arrow param destructuring #8926
Conversation
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/9282/ |
FWIW, I published this to npm as |
@benmosher thanks! |
* master: (222 commits) Set correct methods name Use toPropertyKey in the "decorate" helper Allow function types in type params within arrow return types (babel#8954) Fix message when plugin of a wrong type is passed (babel#8950) rename colliding let bindings with for loop init (babel#8937) edge incomplete support for arrow destructuring (babel babel#8349) (babel#8926) fix single-arg async arrows when retainLines=true (babel#8868) [flow] Explicit inexact objects with `...` (babel#8884) Update preset-env data (babel#8898) Treat break inside block inside loop (babel#8914) fixed "source map" formatting in comment (babel#8878) [skip ci] fix typo in contributing guidelines (babel#8901) [skip ci] fix: Expression x === 'y' && '' should not evaluate to undefined. (babel#8880) fixed an extra word Fixes babel#8865 (babel#8866) v7.1.4 v7.1.3 Bump Babel deps (babel#8770) flow-bin@0.82.0 (babel#8832) Insertafter jsx fix (babel#8833) ... # Conflicts: # packages/babel-parser/src/tokenizer/index.js # packages/babel-parser/test/fixtures/experimental/class-private-properties/failure-numeric-literal/options.json # packages/babel-parser/test/fixtures/experimental/pipeline-operator/invalid-proposal/options.json
@benmosher & @existentialism I think this PR introduced a regression, can you look at #9020 (comment) please ? |
|
My bad, it supports it only if there are no previous parameters, issue is still valid This is supported (({b = 0, c = 3}) => {
return b === 2 && c === 3;
})({b: 2}); this is not supported ((a, {b = 0, c = 3}) => {
return a === 1 && b === 2 && c === 3;
})(1, {b: 2});``` |
@JSteunou is it possible to do the transpilation in a finer-grained way? AFAICT it's just the one plugin package that handles both fixing this issue but also has the |
Hey, just ran into this. Using @babel/preset-env 7.1.6, and basically it outputs this using class User_User extends react_default.a.Component {
constructor() {
var _this;
_this = super(...arguments);
User_defineProperty(this, "onClick", () => {
if (!this.props.user) {
this.props.doSomething();
}
});
User_defineProperty(this, "render", function () {
let optionalArg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'false';
// this line crashes on Edge 17.1734 (latest at this moment)
const _this$props = _this.props,
user = _this$props.user;
});
}
render() {
const user = this.props.user;
return react_default.a.createElement("div");
}
} Is there any work on this at the moment? Any workaround in the meantime? Thanks in advance! |
Added the as-yet-Edge-unsupported arrow function parameter destructuring as a feature supported by
transform-parameters
, per compat-table.