-
Notifications
You must be signed in to change notification settings - Fork 51
Closed
Description
Here is a very simple app which uses trace.
<?xml version="1.0" encoding="utf-8"?>
<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:js="library://ns.apache.org/royale/basic"
applicationComplete="onComplete()">
<fx:Script>
<![CDATA[
private function onComplete():void{
trace("foo");
}
]]>
</fx:Script>
<js:valuesImpl>
<js:SimpleCSSValuesImpl />
</js:valuesImpl>
<js:initialView>
<js:View>
<js:Label text="ID" id="id1" localId="id1" />
</js:View>
</js:initialView>
</js:Application>
Language.trace has a "debug comment" of @royaledebug This is suposed to cause if(!goog.DEBUG)return; to be inserted at the top of the function. That line allows the Google Complier to strip out the entire function and any references to it in the app using dead code removal.
It's not actually being removed. Currently, Language.trace is output like this:
/**
* @royaledebug
* @nocollapse
* @param {...} rest
*/
org.apache.royale.utils.Language.trace = function(rest) {
rest = rest;if(!goog.DEBUG)return;
rest = Array.prototype.slice.call(arguments, 0);
var /** @type {*} */ theConsole;
theConsole = goog.global.console;
if (theConsole === undefined) {
if (typeof(window) !== "undefined") {
theConsole = window.console;
} else if (typeof(console) !== "undefined") {
theConsole = console;
}
}
try {
if (theConsole && theConsole.log) {
theConsole.log.apply(theConsole, rest);
}
} catch (e) {
}
};
Notice that if(!goog.DEBUG)return; is being inserted, but it's after rest = rest; I don't know if that's the reason it's not being stripped or there's some other reason.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels