问题标签 [traceur]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
traceur - `inline` 和 `register` 模块选项
做什么--modules inline
和--modules register
选项做什么?
https://github.com/google/traceur-compiler/wiki/Options-for-Compiling。
javascript - 覆盖一个setter,getter也必须被覆盖
覆盖set
属性的方法,并且该方法似乎get
也必须被覆盖,否则undefined
返回(即,该get
方法未继承,取消注释get property()
上面的子类方法,一切正常)。
我认为这是规范的一部分。如果行为是交叉编译的结果,它可能会遵循。可以肯定的是,这是编写重写的 setter 和 getter 的正确方法(同时或根本不)?
ecmascript-6 - How to test an ES6 generator function from an ES5 test framework
Given an ES6 class with generator function how do you run that generator function from ES5 code:
From an ES5 testing framework:
This does not throw any errors, will run the setup function, however does not iterate through the array.
javascript - Javascript ES6 消除了类中任何地方的“this”关键字的使用
我现在正在使用 Traceur 来编写一些未来的 javascript,这是我在某个类中拥有的一个函数
当然,与任何传统的 javascript 代码一样,它到处都被 this 关键字覆盖。来自 Java 之类的,当我不需要时,在引用类中的字段时必须指定它是非常不自然的。
有没有办法让 Traceur 像 Java 一样解释类?(即在未指定时自动插入,等等)
javascript - 获取 ES6 类实例的类名
是否有任何“和谐”的方法可以从 ES6 类实例中获取类名?以外
目前我指望 Traceur 实施。而且似乎 Babel 有一个 polyfill,Function.name
而 Traceur 没有。
综上所述:在 ES6/ES2015/Harmony 中没有其他方法,在 ES.Next 中没有任何预期的 ATM。
它可能为未缩小的服务器端应用程序提供有用的模式,但在用于浏览器/桌面/移动的应用程序中是不需要的。
Babel用于core-js
polyfill Function.name
,应根据需要为 Traceur 和 TypeScript 应用程序手动加载。
promise - 在 ES6 中扩展 Promise
我正在尝试扩展 Promise:
然后在派生类上调用static resolve
,直接创建resolved promise:
在 traceur 中,这会产生:
在 Babel (run as babel-node --experimental promise.js
) 中,它会导致:
我依赖于这个:
Promise 的所有静态方法都支持子类化:它们通过接收器创建新实例(想想:new this(...))并通过它访问其他静态方法(this.resolve(...) 与 Promise.resolve(.. .))。
来自http://www.2ality.com/2014/10/es6-promises-api.html。
似乎节点检查this
on 调用,例如Promise.resolve.call(this, val)
是 a Promise
,而不是(正确?)Promise
或其派生类(v0.12.0)。
以上是否不再有效,或者没有纳入规范,或者只是没有由 traceur 和/或节点实现?
ecmascript-6 - 需要在循环中声明局部变量吗?
我发现以下工作正常:
并且没有任何事先声明_next
,如果我声明变量,traceur 实际上会引发意外的关键字错误while ((let _next = itr.next()) ...
。
这是 ECMAScript 6 吗?
ecmascript-6 - traceur 中另一个类的引用方法
我正在使用 traceur 测试 ES6 中的类,但它没有按我预期的那样工作。
我正在尝试使用一个方法作为另一个类中的引用,但是当它被调用时,我在读取this
.
这是我的代码:
我的预期日志是:
但它显示:
javascript - 在单个构建文件中使用带有 traceur 的 ES6 模块
我只是有一个简单的问题在任何地方都找不到,他整个早上都在谷歌上搜索。关于traceur的信息不多,至少对我来说不是那么清楚。
当我使用 traceur 编译单个输出文件并在带有 traceur-runtime 的浏览器中使用它时,应该如何实现 ES6 模块?导入和导出不断获得意外令牌。
我正在使用 gulp-traceur 并尝试了所有模块选项 //'commonjs' //'amd'、'commonjs'、'instantiate'、'inline'、'register'。
我有一个疑问是我一直在寻找关于 commonjs 的答案,但我使用 ES6 模块的想法是拥有不同的源,然后从主导入它们并将所有这些结果编译到一个文件中(我的意思是我不需要在浏览器中异步加载模块)
这是吞咽任务
导入时意外的令牌来自应用程序
或者
(尝试了几种方法)
导出时也来自circle.js
export default Circle;
或export Circle;
(也尝试了几种方法)
browserify - 从 ES6 模块生成 browserify 输出和 System.register() 模块?
我按照2ality的最终语法示例对 ES6 模块进行了编码,没有.js
后缀。
我还将模块组织成供应商/项目目录层次结构和模块命名方案,因为System.register()
模块格式有效地将已注册的模块放置到相同的命名空间中。
问题如下,如果我引用 2ality 的例子:
上面的代码可以直接在浏览器中正常工作,例如,使用traceur和es6-module-loader(请参阅参考资料example-es6-modules.html
)。当import
遇到声明时,.js
后缀似乎会自动附加到文件名,并被lib.js
加载。只要System.paths
配置为指向 vendor/project 目录的顶部,就可以直接在浏览器中执行 ES6 模块。
当使用SystemJS builder捆绑到单个System.register()
模块格式文件时,上述内容也可以正常工作(请参阅参考资料)。只要在生成模块时设置为供应商/项目层次结构的顶部(请参阅builder.js),那么模块就会以供应商/项目前缀命名。example-system-register.html
baseURL
问题是,当我尝试为 browserify 的输入生成 CommonJS 模块时,同时执行转换traceur
并且es6ify
不将.js
后缀附加到声明中的文件名时import
,会导致以下几行错误:
上面的错误是因为traceur没有给import声明添加.js
后缀。'gso/eonjs/MomentRecurRule'
否则会找到该文件。
如果 ES6 模块被转编译为单个 CommonJS 模块,browserify 会报告相同的错误,找不到要导入的文件 - browserify 也不会类似地自动.js
为导入文件名添加后缀。
那么问题是,ES6 模块在浏览器中执行没有问题,System.register()
也可以作为捆绑模块加载,但是如何转换为浏览器可执行文件?