【问题标题】:YUI Compressor: What are micro optimizations?YUI Compressor:什么是微优化?
【发布时间】:2009-03-23 20:24:54
【问题描述】:

YUI Compressor,在其(不是很广泛的)文档中将其作为一个选项:

--disable-optimizations
    Disable all the built-in micro optimizations.

有人知道这是什么意思吗?
这将打开/关闭什么?
我没有找到任何关于它的文档。

谢谢!

【问题讨论】:

    标签: yui-compressor


    【解决方案1】:

    看JavaScriptCompressor的源码:

    lines 548-

        if (!disableOptimizations) {
            optimizeObjectMemberAccess(this.tokens);
            optimizeObjLitMemberDecl(this.tokens);
        }
    

    lines 467-

    /*
    * Transforms obj["foo"] into obj.foo whenever possible, saving 3 bytes.
    */
    private static void optimizeObjectMemberAccess(ArrayList tokens) {
    

    lines 497-

    /*
     * Transforms 'foo': ... into foo: ... whenever possible, saving 2 bytes.
     */
    private static void optimizeObjLitMemberDecl(ArrayList tokens) {
    

    因此它将foo['bar'] 中的常量字符串的使用转换为foo.bar{'bar':x}{bar:x}

    【讨论】:

    • 谢谢!我肯定会禁用这些。出于某种原因,它们让我对 YUI 对我的代码这样做感到有点奇怪。
    • 您为什么不希望 YUI 对您的代码执行此操作?在 JavaScript 中,window.locationwindow['location'] 表示完全相同
    • @Matthew 使用@来解决回复,否则我看到的消息,不是丹尼尔
    • 在某些情况下可能会出现问题,例如如果你 foo.delete,IE8 会认为它是一个保留的 js 关键字(delete)并抛出一个错误,所以 foo["delete"] 在 IE8 中是必要的。
    • @Marcel delete 添加到保留字列表中,因此不会被替换 github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    相关资源
    最近更新 更多