微軟開源Chakra,并計劃在上面運行Node.js
微軟兌現了 開放Edge瀏覽器JavaScript虛擬機的承諾 ,遵循寬松的 MIT許可協議 開放了 Chakra的源代碼 。開源代碼以ChakraCore的名稱發布,基本上同微軟用于Edge和通用Windows平臺(UWP)的VM是同一個,只是去掉了同Edge和UWP的綁定以及部分COM診斷API。
ChakraCore是作為一個嵌入式引擎推出的,可以包含到各種桌面、服務器和IoT應用程序中,微軟希望開發者發現它在這個方面的用途。該引擎使用 JavaScript運行時(JSRT)API 進行了封裝,后者提供了到 運行時 及一個或多個 執行上下文 的訪問。ChakraCore有自己的垃圾收集和異常管理。它所支持的ECMA2015語言特性都不需要任何設置,但要在ChakraCore中使用 Promises ,需要將Promises任務在 EnqueueJob 中排隊。
除了常用的V8虛擬機外,微軟還致力于在ChakraCore引擎上運行Node.js。通過在JSRT上創建了一個V8 shim,他們已經實現了這一目標,使Node.js應用程序可以正常運行,而不需要知道底層的JavaScript VM。該項目托管在GitHub上,名為 Microsoft/node 。
微軟計劃向ChakraCore添加現代化的診斷API,而且他們正致力于Time Travel Debugger的研發。這是一款調試工具,允許開發人員在調試過程中回到上一步,這有助于調試包含回調的代碼。微軟已經在一個Node.js/ChakraCore應用程序(包含超過100個模塊,運行在裝有Windows 10 IoT的Raspberry Pi 2上)上 演示了該調試器 。他們計劃繼續發展這項技術,待它成熟后將其開放。
在不久的將來,微軟計劃從Linux Ubuntu 15.10 x64開始將ChakraCore移植到其他平臺。他們還計劃正式支持部分目前通過試驗標識支持的JavaScript特性——解構賦值、默認參數、指數運算符、Async。他們將通過試驗標識支持ES2015模塊,并計劃通過asm.js管道運行WebAssembly代碼。
開發人員會使用ChakraCore嗎?微軟認為他們會的。微軟展示了誘人的 性能基準測試結果 ,其中,Edge在Octane 2.0和Jet Stream兩項測試上擊敗了最新版本的Chrome和Firefox。此外,從 Kangax的JavaScript兼容性表格 可以看出,ChakraCore支持79%的ES6特性,相比之下,Firefox 45支持85%,而Chrome 49支持71%。不管應用結果如何,微軟都計劃開放CharkraCore的開發,包括將結果用到Edge和UWP上。
查看英文原文: Microsoft Open Sources Chakra and Wants to Run Node.js on It
來自: http://www.infoq.com/cn/news/2016/01/chakracore