- From: Kang-Hao (Kenny) Lu <kanghaol@oupeng.com>
- Date: Fri, 18 Jan 2013 10:27:52 +0800
- To: W3C HTML5 中文興趣小組 <public-html-ig-zh@w3.org>
我最近做了一個 ECMAScript 6 的 HTML 版語法: http://dev.oupeng.com/wp-content/uploads/es6-grammar.html 包含以下功能: 1. 可以從產生式的定義找到使用該產生式的產生式(反方向連結),這特別是 對於理解有小差異的產生式的(例:BindingElement vs. AssignmentElement)所使用的地方有幫助。 2. 有跟 ES5 差異的註解。 紫雲飛[1]有提到一個日本人也做了類似的 HTML 版的 ES6 文法[2],不過那個在 我的 IE10 動不了(之後有機會送個補丁),另外就是我這份是從 wiki 裡的 MediaWiki 源碼生成的,這裡還希望大家可以幫忙更新。 我希望把這份放到 W3C 的空間,之後開一串新的討論這個。 節錄一些 ES6 跟 ES5 的差異,去除掉完全新功能的部份: UnicodeIDStart :: - 在以下 Unicode 分类中的字符:Lu, Ll, Lt, Lm, Lo, Nl。 + 任何具有 Unicode 属性 “ID_Start” 的 Unicode 字符。 有人有什麼好例子嗎? UnicodeIDContinue :: - 在以下 Unicode 分类中的字符:Lu, Ll, Lt, Lm, Lo, Nl, Mn, Mc, Nd, Pc。 + 任何具有 Unicode 属性 “ID_Continue” 的 Unicode 字符。 同上。 Keyword :: 以下之一 - class export typeof + class export let typeof FutureReservedWord :: 以下之一 或在严格模式下以下之一 - implements let private public yield + implements private public yield 這個還真是有點前途堪憂啊,IE 10 和 V8 都還可以把 "let" 當變數。話說,是 不是其實 "let" 不是關鍵字也不會有語法曖昧的問題?這個版本的 "of", "is", "isnt" 還有非嚴格模式的 "yield" 都不是關鍵字。 IterationStatement : - do Statement while ( Expression ) ; + do Statement while ( Expression ) 測試案例: do ; while (false) 1; 感覺這是一個有點久的規範 bug,有人知道有哪些瀏覽器上面是語法錯誤的嗎? IterationStatement : - for ( var VariableDeclarationNoIn in Expression ) Statement + for ( var ForBinding in Expression ) Statement 測試案例: for (var x = 0 in [1]) ; 在新版應該拋錯,我猜這個大概不會有兼容問題吧(知道這個問題存在的人記得不 要這樣搞 :p)。然後我不知道這個和 EqualityExpressionNoIn : + EqualityExpression [no LineTerminator here] is RelationalExpression + EqualityExpression [no LineTerminator here] isnt RelationalExpression 右邊不是 NoIn 有沒有關係,好像把 NoIn 產生式的算子右邊都容許有 in 的話, 這些都可以歸成 for ( ExpressionNoInopt ; Expressionopt ; Expressionopt ) Statement 的樣子?還沒認真研究。小金有找到相關的討論串[3]。 [1] http://www.cnblogs.com/ziyunfei/ [2] http://teramako.github.com/ECMAScript/ecma6th_syntax.html [3] https://mail.mozilla.org/pipermail/es-discuss/2012-January/thread.html#20203 以上 Kenny -- Web Specialist, Oupeng Browser, Beijing Try Oupeng: http://www.oupeng.com/
Received on Friday, 18 January 2013 02:28:26 UTC