{"body":"so, one-by-one, why it has to be built-in:\n- Auto-bind: Well, this doesn't really *have* to be built-in, but I bet the optimization would be easier to implement that way\n- Resource usage: If it's not built-in, we would need TCP-following functions to represent the block; implementers recently repeated their balk at such things\n- Module import variants: Runtime is too late; all the imports have to happen before any code executes\n- Tail calls: Maybe this is like auto-bind, but I think it would be much harder to avoid a performance regression if this is dynamic\n- Class variants: This depends. Maybe these could be decorators, but we might need some more decorators features\n- Function.prototype.toString censorship: I forgot the details, but when this was presented at TC39, some committee members were convinced it needs to be static\n- Operator overloading declarations: If it's static, this helps code generation, since you know that no operators are overloaded when the declaration is missing\n- Custom code transforms: It'd be unsound to base this off of a dynamic variable name, but maybe that would work in practice","name":"","extension":"txt","url":"https://www.irccloud.com/pastebin/BDNJ1jk7","modified":1548021206,"id":"BDNJ1jk7","size":1124,"lines":9,"own_paste":false,"theme":"","date":1548021206}