ClojureScript

1.10.866 版本發佈

2021 年 5 月 24 日
ClojureScript 團隊

我們很高興宣布 ClojureScript 的新版本發佈。如果您是 ClojureScript 的現有使用者,請仔細閱讀以下版本說明。

值得注意的變更

  • Closure Compiler 已更新至 v20210505

新的核心功能

and / or 優化作為編譯器階段

ClojureScript 會為 and / or 生成高效的 JavaScript,當應用於布林值時,會使用 && / ||。 之前,這些優化是由 and / or 巨集直接實現的。 在此版本中,它們改為在編譯器階段實現。

將這些優化移至程式碼生成階段的結果是,簡化的 and / or 巨集可與 core.async 之類的程式碼走訪函式庫相容。

支援展開為 require 語句的巨集

注意:此變更已在後續版本中還原,因為後來發現(經過許多測試,包括 ClojureScript Canary)有許多情況無法運作。不會重新引入。

此版本允許展開為 require 語句的巨集出現在程式碼中,如下列範例所示

(ns foo.bar
  (:require-macros [foo.baz :refer [macro-that-expands-to-require]]))
(macro-that-expands-to-require)

值得注意的修正

contains? 中支援 IAssociative -contains-key? 協定檢查

IAssociative 協定定義了 -contains-key?,這有助於直接測試鍵是否在關聯集合中。 此版本已修訂核心 contains? 函式,以便對實作 IAssociative 協定的集合進行呼叫。

高階檢查過的陣列

在此版本中,檢查過的陣列存取功能已擴展到 agetaset 的高階使用。 例如,

(apply aget [(into-array [0]) 100])

如果透過 編譯器組態啟用此功能,則現在會在執行階段觸發警告或錯誤。

變更清單

如需 ClojureScript 1.10.866 中完整更新列表,請參閱變更

貢獻者

感謝所有為 ClojureScript 1.10.866 做出貢獻的社群成員

  • Arne Brasseur

  • Dieter Komendera

  • Dominic Monroe

  • Erik Assum

  • Wilker Lúcio