Wpis z mikrobloga

@Ginden:

var {func, scope} jest przypisywany do kolejnych argumentów przyrównanej funkcji czyli w tym przypadku funkcji zwracajacej wartosc a.

tzw. Destructuring assignment

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

Dziwi mnie tylko ze w node 12 z flaga harmony dostaje

>var [foo, bar] = ['foo', 'bar'];
SyntaxError: Unexpected token [

:( na szczescie Babel kompiluje, ponizej output Twojego przykladu:

"use strict";

var _R$createMagicClosure = _R.createMagicClosure(function () {
return a;
}, { a: 1 });

var func =
@Ginden: Zapewne coś w stylu zawracania funkcji która odwołuje się do funkcji X (bo mamy referencje, a nie wskaźniki). Funkcja X to po prostu New Function(fn.toSttring()) z wstrzykniętymi dodatkowymi deklaracjami zmiennych (Object.getOwnPropertyKeys na scope). No i jeszcze defineProperty na wszystkich własnościach scope, żeby mnie gettery/settery które podmienią funkcję X na inną.

Na komórce tego nie napiszę, wieczorem będę mieć kompa dopiero :P