Noah - 诺亚
Smith, M.G. - 史密斯 M.G.
Brooks, R. - 布鲁克斯 R.
Abrams, Peggy - 艾布拉姆 佩吉
Adeniyi, Olu Jimi - 阿迪尼伊 欧露 吉米
Allenbach, Jean-Claude - 阿朗巴克 让-克劳德
Ashkar, Tim - 阿什卡尔 蒂姆
Asoma, Tadashi - 阿索马 塔达希
Austin, Michael J. - 奥斯汀 迈克尔 J.
Baptist, Gerry - 巴普迪斯特 格里
Barbera, Jose - 巴伯拉 乔斯
Bedard, Michael - 迈克尔
Bekaert, Piet - 贝克特 彼特
Beloff, Andrea - 贝洛夫 安德里亚
Berryhill, Lynn - 贝里希尔 林恩
Betterley, Robin - 贝特勒 罗宾
Bettinardi, Graziella - 贝蒂纳尔迪 格拉齐耶拉
Blum, Cheri - 布卢姆 谢里
Bonte, Willard - 威尔兰德
Brauer, Bill - 布劳尔 比尔
Brent, Paul - 布伦特 保罗
Britto, Romero - 布里托 罗梅罗
Brooks, R. - 布鲁克斯 R.
Brownd, Elizabeth King - 布朗德 伊丽莎白 肯
Bua, Justin - 贾斯汀
Buffet, Guy - 巴菲特 盖伊
Buffett, William - 巴菲特 威廉
Bunn, Dot - 邦 道特
Cacalano, Tony - 卡卡拉诺 托尼
Campanelli, Dan - 坎帕内利 丹
Cann, Nicholas - 卡恩 尼古拉斯
Carre, Jean - 卡雷 让
Casey, L.A. - 凯西
Chis, Lucie - 恰斯 露西
Chock, Deborah - 乔克 黛博拉
Choisy, Christian - 查斯 克里斯蒂安
Colclough, Susan Mink - 苏珊
Cole, C. - 科尔 C.
Coleman, M. - 科尔曼 M.
Colombo, Cecile - 科伦坡 塞西尔
Consani, Chris - 孔萨尼 克里斯
Crew, Lee - 克鲁 李
Deacon, Rachel - 德康 雷切尔
Debuysere, Sonia - 索尼亚
Deymonaz, Andre - 德莫纳兹 安德烈
Doss, David - 大卫
Douglas, John - 道格拉斯 约翰
Doutreleau, Pierre - 杜特勒洛 皮埃尔
Dudley, June - 达德雷 朱恩
Edwards, Mona Shafer - 爱德华兹 莫纳 夏菲尔
Eick, Werner - 艾柯 沃纳
Eng, Tay - Eng Tay
Etchenic, Pascal - 帕斯卡
Eubanks, Colleen - Eubanks Colleen
Farel, Pierre - 法雷尔 皮埃尔
Farnsworth, Donald - 法恩斯沃思 唐纳德
Fields, Laurie - 费尔茨 劳里
Fowler, Timney - 福勒 蒂莫尼
Franklin, Richard - 富兰克林 理查德
Fronckowiak, Art - 弗兰茨科维亚克 艺术
Gamboa, Consuelo - 甘博亚 康斯薇洛
Gamracyj, Michel - 米歇尔
Garant, Jennifer - 葛兰特 詹妮弗
Gaudin, Dominique - 高丁 多米尼克
Gillette, Susan - 吉里特 苏珊
Gockel, Alfred - 戈克尔 阿尔弗雷德
Graux, David - 格若克斯 大卫
Gravele, P. G. - 格拉维勒 P. G.
Gross, Karlheinz - 格罗斯 卡尔亨兹
Grubb, Lisa - 丽莎
Hails, Barbara - 赫尔兹 芭芭拉
Hall, Hampton - 霍尔 汉普顿
Hall, Jay - 霍尔 杰伊
Hammel, M. - M.
Hanks, Steve - 汉克斯 史蒂夫
Harrigan, Claire - 克莱尔
Hartenhoff, Susan - 苏珊
Hayslette, Max - 海斯利特 马克斯
Heindel, Robert - 海因德尔 罗伯特
Hendershot, Ray - 亨德肖特 雷
Herrero, Lowell - 埃雷罗 洛厄尔
Hersh, Howard - 赫什 霍华德
Holland, Jim - 荷兰 吉姆
Holstein, Lizbeth - 荷尔斯坦 莉兹白
Howells, Henry - 豪厄尔斯 亨利
Hoyes, Bernard Stanley - 伯纳德 斯坦利
Humphries, Michael - 汉弗莱斯 迈克尔
Ibbison, Michael - 艾伯逊 迈克尔
Innis, Wendy - 温蒂
Jamali - 贾马利
Jamieson, Paul - 贾米森 保罗
Joadoor - 琼朵
Jokelson, Susan - 苏珊
Judge, Heather - 朱迪 希瑟
Kabaker, Gayle - 盖尔
Kaldor, Andras - 卡尔多 安德拉斯
Kennington, Dale - 肯宁顿 戴尔
Kerfily - 克尔菲利
Kessler, Daniel Patrick - 喀斯乐 丹尼尔 帕特里克
Kieffer, Christa - 基弗 克丽斯塔
Kimble, Warren - 坎波尔 沃伦
Koronatov, Alex - 库拉纳托夫 亚历克斯
Lael, C. - 莱尔 C.
Laigneau, Max - 马克斯
Lake, Randall - 莱克 兰德尔
Leach, Shawna - 里奇 肖娜
Lee, James - 李 詹姆斯
Leech, Raymond - 里奇 雷蒙德
Li-Leger, Don - 李-雷戈尔 堂
Lindner, Walter - 林德纳 瓦尔特
Lombarte, Ramón - Lombarte Ramón
Lourenco, Didier - 洛伦卡 迪迪埃
Lowndes, Rosemary - 朗兹 罗斯玛丽
Lynch, Tiffany - 林奇 蒂凡尼
Macara, Andrew - 安德鲁
Machado, Juarez - 马沙杜 华雷斯
Mackin, Dan - 麦金 丹
Madgwick, Clive - 马德威克 克莱夫
Maimon, Isaac - 以撒
Mangum, William - 曼格姆 威廉
Manning, R. - 曼宁 R.
Manwaring, Mark - 马克
Marchese, Frank - 侯爵 弗兰克
Marshall, Laura - 马歇尔 劳拉
Martinez, Edward - 马丁内斯 爱德华
Mcardle - 麦卡德尔
Mcgill - Mcgill
Mcknight, Thomas - 托马斯
Menard, Tom - 梅纳德 汤姆
Mercier, E. - E.
Mock, Barbara - 默克 芭芭拉
Moga - Moga
Mondelli, Gio - 蒙代利 吉奥
Moor, Michael - 摩尔 迈克尔
Morath, Stephen - 莫拉特 斯蒂芬
Nagel, Patrick - 帕特里克
Neiman, Leroy - 尼曼 雷若伊
Noah - 诺亚
Norris, Barbara - 诺瑞斯 芭芭拉
Ocampo, Octavio - 奥坎波 奥克塔维奥
Olbinski, Rafal - 奥宾斯基 拉法尔
Olenick, Ruth - 奥莱尼克 露丝
Olsen, Barbara - 奥尔森 芭芭拉
Oneglia, Anna Price - 安娜 布莱斯
Ortenstone - 奥特斯通
Parra - 帕拉
Parrish, John - 帕里什 约翰
Pattinian, Merri - 帕蒂宁 梅里
Paul, Helen - 保罗 海伦
Pierson, Markus - 皮尔逊 马库斯
Pollera, Daniel - 波莱拉 丹尼尔
Portilla - 波蒂利亚
Poulet, Raymond - 勃雷特 雷蒙德
Pullen, Grace - 普伦 格蕾丝
Rafuse, Will - 瑞夫斯 威尔
Rainforth, Barbara - 莱茵福斯 芭芭拉
Ray, R. - 雷 R.
Robinson, C. - 罗宾逊 C.
Romanello, Diane - 罗马内洛 黛安娜
Romero - 罗梅罗
Rougie, Joel - 露杰 乔尔
Ruby, Claire - 拉宾 克莱尔
Sambataro, Joe - 桑巴塔罗 乔
Sampson, Cindy - 辛迪
Sans, Soledat - 桑斯 索尔达特
Schweigert, Charles - 施魏格特 查尔斯
Seals, S. - 西尔斯 S.
Segovia, Andreas - 塞哥维亚 安德里亚斯
Seligman, Lincoln - 塞利格曼 林肯
Singley - 辛格利
Slutsky - Slutsky
Smith, M.G. - 史密斯 M.G.
Spivey, Linda - 斯皮维 琳达
Stojkovic, M. - M.
Stoops, Lon - 斯托普斯 朗
Sullivan, Markee - 沙利文
Sweet, Melissa - 斯维特 梅利莎
Theberge, Claude - 克劳德
Ting, Walasse - 蒂恩 华莱士
Vadon, Veronique - 沃东 韦罗尼克
Valente, Carl - 瓦勒特 卡尔
Van Hove, Francine - 凡 霍夫 弗朗辛
Verger, Muriel - 维格尔 穆里尔
Vettriano, Jack - 韦特拉伊洛 杰克
Wachtmeister, Rosina - 瓦赫特迈斯特 罗西娜
Waldman, Neil - 瓦尔德曼 尼尔
Wallis, Kent - 沃利斯 肯特
Waugh, Eric - 沃 埃里克
Wenk, Valerie - 温克 瓦莱丽
Wickersham, Sandi - 威克沙姆 桑迪
Wilson, Ty - 威尔逊 提
Withaar, Reint - 维沙 瑞特
Wohlfelder, Fran - 乌尔费尔德 弗兰
Workman, Michael - 沃克曼 迈克尔
Xavier - 赛维尔
Yarbrough, Beth - 亚伯勒 贝思
Zhan, Charles - 詹 查尔斯
首先要指出的就是FireFox在对ES6的支持上一直都比Chrome浏览器要领先,主要是因为,ES6的很大推动力来自于FF那帮JS元老(包括JS之父Brendan Eich等)当年ES4难产,主要就是因为FF帮那边的人对语法改动太过激进,导致在ES4标准制定的时候冲突不断,所以最后才给下一代ES定了个harmony(和谐)的代号。
Firefox在ES规范之前就已经做了很多私有的语法制定,比如说迭代器,现在可以给对象指定个Symbol.iterator的key来实现一个迭代器,而FF很早就已经实现了形如obj["@@iterator"]=function(){}的迭代器。
所以ES6的标准,firefox的SpiderMonkey是实现最迅速的,而chrome的V8,却一直比较反复,特别是像Proxy这种特性,V8在大约一年半以前临时实现过一种,用了两个版本以后,突然彻底下架,然后一年多以来,这个Proxy的特性就一直没加回来,包括计划列表里都没有这玩意。
需要指出的是,题图里关于ES6的支持对比,firefox丢分在于没有支持class关键字,而Edge13却完整支持了ES6 class的语法糖,包括super。
其实class关键字一直存在于firefox的夜间版上面,可惜的是不知道什么原因,已经过了这么长的时间了,FF也没有把class移植到正式版上面。
其他FF相比于edge13丢分的在于内置对象的子类支持,就是形如class A extends Function这种,这个没的说,Edge13确实是领先其他浏览器。
但FF也有Edge13没有支持的一些特性,典型的比如:函数定义时的参数默认值,<!--var a =1-->这种HTML注释JS的手段等等。
更何况FF还有一个很省事的语法糖:解构,这个解构语法就是FF那帮人造出来的,所以他们实现的最早,而其他浏览器也跟进的最慢,Edge13貌似现在也还未实现。
所以总体来说,这两个浏览器在特性支持上基本上在持平状态,FF如果把class从夜间版弄到正式版的话,就可以覆盖到90%了。
=================
然后再来说说chrome和chrome家的v8,由于我常用node.js,所以对V8很关注,经常去v8的官方blog上逛逛,不得不说,v8对于ES6特性实现,是慢于edge和firefox,也就只能和safari家的JAVASCRIPT CORE比一比了。
首先是之前去掉后一直不加的Proxy,这个Proxy可以做很多魔法效果,比如说实现php那种__get__或者是ruby的method_missing,或者是实现单元测试里的mock,在很多场景上都能省事的,然后V8就是任性,开发蓝图上也对这个只字不提了。
然后是箭头函数,说来奇怪,在chrome的某一个版本上,它猛地实现了箭头函数这个特性,然后下一个版本直接取消了,随后一直到V8 3.5的时候才正式加上去,这个离其他浏览器实现箭头函数,已经差了一年时间了,node开发者很多都用coffeescript或者typescript去了……
然后是解构,至今还未实现。
然后是最近几个版本的作为:先是实现个三点号实参调用,也就是func(...arr),这个在V8 4.6的时候加入的唯一ES6新特性,然后V8 4.7加入的是三点号形参定义,也就是function func(...args){}这种,然而参数定义默认值这些特性,估计不知道哪年能实现。
然而node.js绑了V8已经导致了极难替换的局面,倒不是因为语言的引擎难以替换,而是周边的大量类库难以替换,所以node这边才会有一个nan的项目,让C/C++扩展能顺应V8那种快速变更API的流氓作法,而V8的API变化很快,有时候就为了改个名字…