TC39中文讨论群

Ecma International, Technical Committee 39 - ECMAScript 

u-cha 21 hours ago
实质上,class就可以理解为只有[[Construct]],因为它的[[Call]]直接扔TypeError。这和call一个非function,从行为上是无法区分的。
u-ehjh 21 hours ago
class 也是有 call slot 的
u-ehjh 21 hours ago
但是你可以用 proxy 来改 call slot 的行为
u-ehjh 21 hours ago
可以区分
u-ehjh 21 hours ago
没有 call slot 的话 apply trap 就无效了
u-ehjh 21 hours ago
; new Proxy({}, apply: console.log)()
u-ehjh 21 hours ago
; new Proxy(class {}, { apply: console.log })()
u-cha 21 hours ago
这个其实是proxy的问题。我不认为这是proxy故意这样设计的,也就是说那算是个副作用。。。
u-ehjh 21 hours ago
而且吧 我记得 typeof 是看 call slot 的
u-ehjh 21 hours ago
没 call slot 的话 typeof class 就变 object 了
u-cha 21 hours ago
是的。不过ljharb说过,他希望 typeof class{} 返回 'constructor' (虽然是不可能的。。。)
u-cha 21 hours ago
所以我其实是解释 ljharb 同志的想法,不代表我也支持这个想法(其实有点儿支持)
u-ehjh 21 hours ago
所以既然没法创建只有 construct 没有 call 的对象
u-ehjh 21 hours ago
其实还是 editorial 的
u-cha 21 hours ago
回过头说,这个事情可以通过改一堆地方确保语义是保持原样,但是为了简化2055这一个地方要改很多地方,其实这个是本质复杂度,只是把问题转移到了其他地方。。。
u-ehjh 21 hours ago
当然如果 native 层开挂就不算了
u-cha 21 hours ago
要么就是弄成非 editorial,改变某些语义,但这个事情吧,像我讲的,对开发者似乎也没啥用,所以不如别花这个精力。。。
u-cha 21 hours ago
我们比较来说, class extends null {} 还算对开发者有点用,但是这样一个改变少许语义的东西搞了几年都没搞好。。。
u-cha 21 hours ago
@黄玄Hux 所以我对2055大概是抱着多一事不如少一事的消极态度[Facepalm]。。。
u-ehjh 21 hours ago
不如来看看 #2045 (
u-ehjh 21 hours ago
这才是大幅简化(
u-cha 21 hours ago
其实我对 ecma262 的主库基本很少看,因为真正有价值的东西一定是需要consensus的PR(其实也未必真有价值[Onlooker]),会在会议上单独拿出来讲的。
u-cha 21 hours ago
给你点赞 [ThumbsUp]
u-ehjh 21 hours ago
哪有这么多 normative 的东西能搞呢,不然大家不得天天要喊学不动了(
u-cha 21 hours ago
normative的东西也未必是要学的。。。
u-cha 21 hours ago
@Jack 感觉你跟spec搏斗了3个礼拜,将来就靠你担任editor了!
u-eccha 21 hours ago
"Jack: 原来是群友" - - - - - - - - - - - - - - - 「原来」?
u-eccha 21 hours ago
"Jack: 不如来看看 #2045 (" - - - - - - - - - - - - - - - 点赞
u-eccha 21 hours ago
"Hax: 要么就是弄成非 editorial,改变某些语义,但这个事情吧,像我讲的,对开发者似乎也没啥用,所以不如别花这个精力。。。" - - - - - - - - - - - - - - - 其实之前就是从 function object 用 editorial 改成现在 object + 手动声明这样的… 所以再改回去估计没啥意义…
u-ehjh 20 hours ago
"黄玄Hux: 「原来」?" - - - - - - - - - - - - - - - 之前看到 pr 就点开看了一下 gh 页面发现是华人
u-ehjh 20 hours ago
#2045 主要是我自己要用 = = 不然写 builtin 的 generator spec 太痛苦了
u-eccha 20 hours ago
"Jack: 之前看到 pr 就点开看了一下 gh 页面发现是华人" - - - - - - - - - - - - - - - 我也看了一眼你的 gh 发现是 maskbook...Suji Yan 的小伙伴?
u-ehjh 20 hours ago
"黄玄Hux: 我也看了一眼你的 gh 发现是 maskbook...Suji Yan 的小伙伴?" - - - - - - - - - - - - - - - 是,所以公司方面主要盯 realms compartments ses 提案
u-cha 7 hours ago
刚刚发现firefox还曾经支持过这样的语法: var a = #1 = { val:1, next:{val:2, next:#1#} }
u-cha 7 hours ago
用来表示循环引用。查了下,这个 sharp variable 语法是从 common lisp 抄来的。
u-cha 7 hours ago
@Jack range(5, 1) 现在自动得到 step -1,range(5, 5) 现在是啥语义?step为0?返回一个5??