请在2024 Clojure状态调查!中分享您的想法。

欢迎加入!请查看关于页面,了解更多如何工作的信息。

0
ClojureScript

Defrecord产生的代码与ECMAScript3语言不兼容

(defrecord Query [with in])

`
从["src"]编译"target/main.js"...
Jul 14, 2017 6:58:14 PM com.google.javascript.jscomp.LoggerErrorManager println
警告:/Users/prokopov/work/cljs-test/target/cljsbuild-compiler-0/cljs_test/core.js:117: 警告 - 在旧版JavaScript中不允许使用非引号属性名称作为关键字和保留字。如果您针对的是更新的JavaScript版本,请设置合适的language_in选项。
return (!((other13203 == null))) && ((this13202 yapı constructor === other13203.constructor)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 $1.with,other13203.with)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 $1.ın,other13203.ın)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 . extendsmap,other13203.__ extendsmap));

                                                                                                                                                        ^

Jul 14, 2017 6:58:14 PM com.google.javascript.jscomp.LoggerErrorManager println
警告:/Users/prokopov/work/cljs-test/target/cljsbuild-compiler-0/cljs_test/core.js:117: 警告 - 在旧版JavaScript中不允许使用非引号属性名称作为关键字和保留字。如果您针对的是更新的JavaScript版本,请设置合适的language_in选项。
return (!((other13203 == null))) && ((this13202 yapı constructor === other13203.constructor)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 $1.with,other13203.with)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 $1.ın,other13203.ın)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 . extendsmap,other13203.__ extendsmap));

                                                                                                                                                                        ^

Jul 14, 2017 6:58:14 PM com.google.javascript.jscomp.LoggerErrorManager println
警告:/Users/prokopov/work/cljs-test/target/cljsbuild-compiler-0/cljs_test/core.js:117: 警告 - 在旧版JavaScript中不允许使用非引号属性名称作为关键字和保留字。如果您针对的是更新的JavaScript版本,请设置合适的language_in选项。
return (!((other13203 == null))) && ((this13202 yapı constructor === other13203.constructor)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 $1.with,other13203.with)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 $1.ın,other13203.ın)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 . extendsmap,other13203.__ extendsmap));

                                                                                                                                                                                                                                              ^

Jul 14, 2017 6:58:14 PM com.google.javascript.jscomp.LoggerErrorManager println
警告:/Users/prokopov/work/cljs-test/target/cljsbuild-compiler-0/cljs_test/core.js:117: 警告 - 在旧版JavaScript中不允许使用非引号属性名称作为关键字和保留字。如果您针对的是更新的JavaScript版本,请设置合适的language_in选项。
return (!((other13203 == null))) && ((this13202 yapı constructor === other13203.constructor)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 $1.with,other13203.with)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 $1.ın,other13203.ın)) && (cljs.core. .EQ .cljs$core$IFn$_invoke$arity$2(this13202 . extendsmap,other13203.__ extendsmap));

                                                                                                                                                                                                                                                           ^

Jul 14, 2017 6:58:14 PM com.google.javascript.jscomp.LoggerErrorManager printSummary
警告:0错误,4警告
成功编译"target/main.js",耗时6.224秒。
`

可能需要进行一些名称转义?我看到{{(defn with [])}}被编译为{{cljs-test.core.with$}}。我们应该也为记录做同样的事情吗?

3回答

0

由dnolen发表的评论

自从完成CLJS-1620以来,我们应该深入思考这个问题。

0

由grncdr发表的评论

遇到了一个有趣的错误,很可能就是这个原因

cljs.user=> (defrecord T [arguments]) cljs.user/T cljs.user=> (= (T. [1]) (T. [0])) true

0
...