Hi Justin, Is this mean that if this property is true in config and I set my boolean property to false it will be ignored ?
var myProperty:Boolean = false; When I trace it I will see: undefined Piotr 2017-06-24 10:46 GMT+02:00 <jmcl...@apache.org>: > Repository: flex-falcon > Updated Branches: > refs/heads/initializers c17bdc9a5 -> b805d6d99 > > > make default initialisers configurable > > > Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo > Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/62d53ed4 > Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/62d53ed4 > Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/62d53ed4 > > Branch: refs/heads/initializers > Commit: 62d53ed404bfa1cd2c3f75ce2463c0f01e3c7afe > Parents: c17bdc9 > Author: Justin Mclean <jmcl...@apache.org> > Authored: Fri Jun 16 12:49:57 2017 +1000 > Committer: Justin Mclean <jmcl...@apache.org> > Committed: Fri Jun 16 12:49:57 2017 +1000 > > ---------------------------------------------------------------------- > .../codegen/js/jx/VarDeclarationEmitter.java | 57 ++++++++++---------- > .../flex/compiler/config/Configuration.java | 23 ++++++++ > .../apache/flex/compiler/messages_en.properties | 1 + > .../org/apache/flex/compiler/ant/COMPCTask.java | 1 + > .../org/apache/flex/compiler/ant/MXMLCTask.java | 1 + > 5 files changed, 54 insertions(+), 29 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ > 62d53ed4/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/js/jx/VarDeclarationEmitter.java > ---------------------------------------------------------------------- > diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/js/jx/VarDeclarationEmitter.java > b/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/js/jx/VarDeclarationEmitter.java > index 67ae28f..a4c8e22 100644 > --- a/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/js/jx/VarDeclarationEmitter.java > +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/ > internal/codegen/js/jx/VarDeclarationEmitter.java > @@ -19,6 +19,7 @@ > > package org.apache.flex.compiler.internal.codegen.js.jx; > > +import org.apache.flex.compiler.clients.JSConfiguration; > import org.apache.flex.compiler.codegen.ISubEmitter; > import org.apache.flex.compiler.codegen.js.IJSEmitter; > import org.apache.flex.compiler.constants.IASLanguageConstants; > @@ -28,6 +29,7 @@ import org.apache.flex.compiler.definitions.metadata. > IMetaTagAttribute; > import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens; > import org.apache.flex.compiler.internal.codegen.js.JSSubEmitter; > import org.apache.flex.compiler.internal.codegen.js.flexjs. > JSFlexJSEmitter; > +import org.apache.flex.compiler.internal.projects.FlexJSProject; > import org.apache.flex.compiler.internal.tree.as.ChainedVariableNode; > import org.apache.flex.compiler.internal.tree.as.DynamicAccessNode; > import org.apache.flex.compiler.internal.tree.as.FunctionCallNode; > @@ -42,10 +44,14 @@ import org.apache.flex.compiler.tree.as.IVariableNode; > public class VarDeclarationEmitter extends JSSubEmitter implements > ISubEmitter<IVariableNode> > { > + boolean ignoreInitilization; > > public VarDeclarationEmitter(IJSEmitter emitter) > { > super(emitter); > + > + JSConfiguration configuration = ((FlexJSProject) > getProject()).config; > + ignoreInitilization = configuration. > getIgnoreDefaultInitilization(); > } > > @Override > @@ -180,40 +186,33 @@ public class VarDeclarationEmitter extends > JSSubEmitter implements > IExpressionNode enode = node.getVariableTypeNode();// > getAssignedValueNode(); > if (enode != null) > typedef = enode.resolveType(getWalker().getProject()); > - if (typedef != null) > - { > - String defName = typedef.getQualifiedName(); > - if (defName.equals("int") || > defName.equals("uint")) > - { > - if (node.getParent() != null && > - > node.getParent().getParent() != null && > - > node.getParent().getParent().getNodeID() != ASTNodeID.Op_InID) > - { > - write(ASEmitterTokens.SPACE); > - writeToken(ASEmitterTokens.EQUAL); > - write("0"); > - } > - } > - else if (defName.equals("Boolean")) > - { > + if (typedef != null) { > + String defName = typedef.getQualifiedName(); > + if (defName.equals("int") || defName.equals("uint")) { > if (node.getParent() != null && > node.getParent().getParent() != null && > - node.getParent().getParent().getNodeID() != > ASTNodeID.Op_InID) > - { > + node.getParent().getParent().getNodeID() != > ASTNodeID.Op_InID) { > write(ASEmitterTokens.SPACE); > writeToken(ASEmitterTokens.EQUAL); > - write(ASEmitterTokens.FALSE); > + write("0"); > } > - } > - else if (defName.equals("Number")) > - { > - if (node.getParent() != null && > - node.getParent().getParent() != null && > - node.getParent().getParent().getNodeID() != > ASTNodeID.Op_InID) > - { > - write(ASEmitterTokens.SPACE); > - writeToken(ASEmitterTokens.EQUAL); > - write("NaN"); > + } else if (!ignoreInitilization) { > + if (ignoreInitilization && defName.equals("Boolean")) > { > + if (node.getParent() != null && > + node.getParent().getParent() != null && > + node.getParent().getParent().getNodeID() > != ASTNodeID.Op_InID) { > + write(ASEmitterTokens.SPACE); > + writeToken(ASEmitterTokens.EQUAL); > + write(ASEmitterTokens.FALSE); > + } > + } else if (ignoreInitilization && > defName.equals("Number")) { > + if (node.getParent() != null && > + node.getParent().getParent() != null && > + node.getParent().getParent().getNodeID() > != ASTNodeID.Op_InID) { > + write(ASEmitterTokens.SPACE); > + writeToken(ASEmitterTokens.EQUAL); > + write("NaN"); > + } > } > } > } > > http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ > 62d53ed4/compiler/src/main/java/org/apache/flex/compiler/ > config/Configuration.java > ---------------------------------------------------------------------- > diff --git > a/compiler/src/main/java/org/apache/flex/compiler/config/Configuration.java > b/compiler/src/main/java/org/apache/flex/compiler/config/ > Configuration.java > index 6356c88..e21ef65 100644 > --- a/compiler/src/main/java/org/apache/flex/compiler/config/ > Configuration.java > +++ b/compiler/src/main/java/org/apache/flex/compiler/config/ > Configuration.java > @@ -3961,6 +3961,29 @@ public class Configuration > } > > // > + // 'compiler.ignore-default-initilization' option > + // > + > + /** > + * Allow the user to set Boolean and Number type to be undefined and > ignore them being initialised > + * to false and NaN respectively. Note that use this option breaks > compatability with ActionScript. > + */ > + private boolean ignoreDefaultInitilization = true; > + > + public boolean getIgnoreDefaultInitilization() > + { > + return ignoreDefaultInitilization; > + } > + > + @Config(advanced = true) > + @Mapping({ "compiler", "ignore-default-initilization" }) > + @FlexOnly > + public void setIgnoreDefaultInitilization(ConfigurationValue cv, > boolean ignoreDefaultInitilization) > + { > + this.ignoreDefaultInitilization = ignoreDefaultInitilization; > + } > + > + // > // 'compiler.compress' option (default is true) > // > > > http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ > 62d53ed4/compiler/src/main/resources/org/apache/flex/compiler/messages_en. > properties > ---------------------------------------------------------------------- > diff --git > a/compiler/src/main/resources/org/apache/flex/compiler/messages_en.properties > b/compiler/src/main/resources/org/apache/flex/compiler/ > messages_en.properties > index e9b9b79..b23b0b4 100644 > --- a/compiler/src/main/resources/org/apache/flex/compiler/ > messages_en.properties > +++ b/compiler/src/main/resources/org/apache/flex/compiler/ > messages_en.properties > @@ -64,6 +64,7 @@ compiler.accessible=generate an accessible SWF > compiler.compress=enables or disables SWF file compression > compiler.source-path=list of path elements that form the roots of > ActionScript class hierarchies > compiler.actionscript-file-encoding=specifies actionscript file > encoding. If there is no BOM in the AS3 source files, the compiler will use > this file encoding. > +compiler.ignore-default-initilization=ignore default initialization of > Boolean and Numbers and leave them as undefined > compiler.isolate-styles=enables the compiled application or module to > set styles that only affect itself and its children > compiler.context-root=path to replace {context.root} tokens for service > channel endpoints > compiler.external-library-path=list of SWC files or directories to > compile against but to omit from linking > > http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ > 62d53ed4/flexjs-ant-tasks/src/main/java/org/apache/flex/ > compiler/ant/COMPCTask.java > ---------------------------------------------------------------------- > diff --git > a/flexjs-ant-tasks/src/main/java/org/apache/flex/compiler/ant/COMPCTask.java > b/flexjs-ant-tasks/src/main/java/org/apache/flex/compiler/ > ant/COMPCTask.java > index 178e227..0aabd6c 100644 > --- a/flexjs-ant-tasks/src/main/java/org/apache/flex/compiler/ > ant/COMPCTask.java > +++ b/flexjs-ant-tasks/src/main/java/org/apache/flex/compiler/ > ant/COMPCTask.java > @@ -118,6 +118,7 @@ public final class COMPCTask extends FlexTask > implements DynamicConfigurator > new ConfigBoolean(new OptionSpec("compiler.es")), > new ConfigBoolean(new OptionSpec("compiler.generate- > abstract-syntax-tree")), > new ConfigBoolean(new OptionSpec("compiler.headless-server")), > + new ConfigBoolean(new OptionSpec("compiler.ignore- > default-initilization")), > new ConfigBoolean(new OptionSpec("compiler.isolate-styles")), > new ConfigBoolean(new OptionSpec("compiler.keep-all- > type-selectors")), > new ConfigBoolean(new > OptionSpec("compiler.keep-generated-actionscript", > "keep")), > > http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/ > 62d53ed4/flexjs-ant-tasks/src/main/java/org/apache/flex/ > compiler/ant/MXMLCTask.java > ---------------------------------------------------------------------- > diff --git > a/flexjs-ant-tasks/src/main/java/org/apache/flex/compiler/ant/MXMLCTask.java > b/flexjs-ant-tasks/src/main/java/org/apache/flex/compiler/ > ant/MXMLCTask.java > index 613ac2a..6cecb95 100644 > --- a/flexjs-ant-tasks/src/main/java/org/apache/flex/compiler/ > ant/MXMLCTask.java > +++ b/flexjs-ant-tasks/src/main/java/org/apache/flex/compiler/ > ant/MXMLCTask.java > @@ -117,6 +117,7 @@ public final class MXMLCTask extends FlexTask > implements DynamicConfigurator > new ConfigBoolean(new OptionSpec("compiler.es")), > new ConfigBoolean(new OptionSpec("compiler.generate- > abstract-syntax-tree")), > new ConfigBoolean(new OptionSpec("compiler.headless-server")), > + new ConfigBoolean(new OptionSpec("compiler.ignore- > default-initilization")), > new ConfigBoolean(new OptionSpec("compiler.isolate-styles")), > new ConfigBoolean(new OptionSpec("compiler.keep-all- > type-selectors")), > new ConfigBoolean(new > OptionSpec("compiler.keep-generated-actionscript", > "keep")), > >