0 Replies Latest reply on Apr 15, 2008 10:33 AM by (Paul_Reilly)

    [svn] 1220: Improved AST generation enough to pass all the mxunit compiler and

      Revision: 1220
      Author: preilly@adobe.com
      Date: 2008-04-15 11:33:14 -0700 (Tue, 15 Apr 2008)

      Log Message:
      -----------
      Improved AST generation enough to pass all the mxunit compiler and
      data binding tests. In theory, this should allow us to compile the
      performance suite applications now. AST generation is still off by
      default. Additional testing and some loose ends need to be tied up
      before we flick the switch on AST generation.

      checkintests Passed: YES

      Needs QA: Not yet.

      Needs DOC: NO

      API Change: NO

      Code-level description of changes:

      lib/asc.jar

      Built with NodeFactory.java change.

      modules/asc/src/java/macromedia/asc/parser/NodeFactory.java

      Added getContext() to make life easier for AST generation code.

      modules/compiler/src/java/flex2/compiler/as3/EmbedEvaluator.java

      Modified evaluate(Context, MetaDataNode) to handle the case when
      the Context's input is null by leaving the line number and column
      number unset and by using the Context's scriptName instead of the
      input's origin.

      modules/compiler/src/java/flex2/compiler/as3/AbstractSyntaxTreeUtil.java

      Added generateMxInternalQualifiedIdentifier() from
      ImplementationGenerator.

      Modified the generateVariable*() methods to use a NodeFactory
      instead of a Context.

      modules/compiler/src/java/flex2/compiler/SymbolTable.java

      Modified constructor to temporarily set the ABC version to 0, so
      we target the Flash 9 Player. Jono is working on wiring up the
      configuration to control this.

      modules/compiler/src/java/flex2/compiler/mxml/rep/init/ValueInitializer.java

      Modified generateDefinitionBody() by adding support for Repeaters.

      Added generateChildDescriptorVariable(),
      generateInitializeRepeater(), and generateRepeaterChildDescriptorLoop().

      Modified formatExpr() to handle BindingExpression with an
      "undefined" value and classType with a "this" value correctly.

      Implemented asXmlLiteral().

      modules/compiler/src/java/flex2/compiler/mxml/rep/init/VisualChildInitializer.java

      Added extractName(), generateChildRepeaters(), and generateElse().

      Implemented generateAssignExpr().

      modules/compiler/src/java/flex2/compiler/mxml/rep/BindingExpression.java

      Added generateNamespaceDeclarations().

      modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java

      Made addDescriptorInitializerFragments(), addDescriptorEvents,
      addDescriptorEffectNames, addDescriptorStylesAndEffects,
      addDescriptorProperties() and getDescriptorInitializerFragments()
      static, so that VisualChildInitializer can use them.

      Removed literal(), because it's no longer used.

      Removed generateMxInternalQualifiedIdentifier(), which was moved
      to AbstractSyntaxTreeUtil.

      Modified generateClassDefinition() to more closely follow the
      Velocity templates.

      Modified generateComponentStyleSettings() by implementing support
      for effects.

      Added generateDocumentAssignment().

      Modified Paths:
      --------------
      flex/sdk/trunk/lib/asc.jar
      flex/sdk/trunk/modules/asc/src/java/macromedia/asc/parser/NodeFactory.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/SymbolTable.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/AbstractSyntaxTreeUtil.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/EmbedEvaluator.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/BindingExpression.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/init/ValueInitializer.ja va
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/init/VisualChildInitiali zer.java