Hi all,

Yesterday I landed a patch to change how `arguments` works inside arrow
functions [0]. `arguments` is now lexically bound (inherited from the outer
function), similar to `this`. For example, the following function will now
return 1 instead of 2:

  (function() {
    var f = () => arguments[0];
    return f(2);
  })(1);

Arrow functions no longer have their own arguments object, but rest
parameters are a good alternative in most cases: (...args) => args[i]

Our codebase (chrome, tests, Gaia) relied on the old behavior in a number
of places [1][2], so I think people should be aware of this subtle change.

Thanks,
Jan

[0] https://bugzilla.mozilla.org/show_bug.cgi?id=889158
[1] https://hg.mozilla.org/mozilla-central/rev/a7b04b9e4f17
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1196202,
https://bugzilla.mozilla.org/show_bug.cgi?id=1197787
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to