0 Replies Latest reply on Apr 3, 2009 6:39 AM by (Paul_Reilly)

    [svn:fx-trunk] 5907: * AST generation optimization for Bindable metadata.

      Revision: 5907
      Author: preilly@adobe.com
      Date: 2009-04-03 07:39:57 -0700 (Fri, 03 Apr 2009)

      Log Message:
      -----------
      * AST generation optimization for Bindable metadata. For some Mxml
      heavy applications, this decreases compilation time by about 10%.
      It also lowers memory use for those applications.

      tests Passed: checkintests, mxunit databinding, full mustella

      Needs QA: YES

      Needs DOC: NO

      API Change: NO

      Reviewer: Corey

      Code-level description of changes:

      tools/WebTierAPI.java

      Modified getCompilers() to pass generateAbstractSyntaxTree into
      BindableExtension and ManagedExtension.

      compiler/as3/genext/GenerativeSecondPassEvaluator.java

      Added generateAbstractSyntaxTree variable and modified constructor
      to set it.

      Made prepMetaDataNode() protected, so subclasses can call it.

      compiler/as3/genext/GenerativeExtension.java

      Added generateAbstractSyntaxTree variable and modified constructor
      to set it.

      compiler/as3/managed/ManagedSecondPassEvaluator.java
      compiler/as3/managed/ManagedExtension.java
      compiler/as3/binding/BindableExtension.java

      Modified constructor to take generateAbstractSyntaxTree param and
      to pass it to super().

      compiler/as3/AbstractSyntaxTreeUtil.java

      Added DOUBLE_COLON.

      Modified generateIdentifier() to handle name's with double colons.

      Added new generateParameter() variant with position arg.

      Added new generateParameter() variant with support for an
      initializer Node.

      Added new generateParameter(), generateTypeExpression(),
      generateVariable() variant with support for a type namespace.

      compiler/as3/binding/BindableSecondPassEvaluator.java

      Added addIEventDispatcherImplementation(),
      addStaticEventDispatcherImplementation(), generateAttributeList(),
      generateBindingEventDispatcherVariable(),
      generateDispatchEventCall(),
      generateAddEventListenerFunctionDefinition(),
      generateDispatchEventFunctionDefinition(),
      generateEventDispatcherNotNull(), generateGetter(),
      generateHasEventListenerFunctionDefinition(),
      generateOldValueStrictlyNotEqualsValueText(),
      generateOldValueVariable(),
      generateRemoveEventListenerFunctionDefinition(), generateSetter(),
      generateSetterAssignment(),
      generateStaticBindingEventDispatcherVariable(),
      generateStaticDispatchEventCall(),
      generateStaticEventDispatcherGetter(),
      generateStaticOldValueVariable(),
      generateStaticSetterAssignment(),
      generateWillTriggerFunctionDefinition(), modifySyntaxTree(), and
      moveMetaDataToNewDefinition().

      compiler/mxml/ImplementationCompiler.java

      Modified constructor to pass generateAbstractSyntaxTree into the
      BindableExtension constructor.

      Modified Paths:
      --------------
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/AbstractSyntaxTreeUtil.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableExtension.jav a
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableProperty.vm
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableSecondPassEva luator.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/genext/GenerativeExtension.ja va
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/genext/GenerativeSecondPassEv aluator.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/managed/ManagedExtension.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/managed/ManagedSecondPassEval uator.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationCompiler.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/InterfaceGenerator.java
      flex/sdk/trunk/modules/compiler/src/java/flex2/tools/WebTierAPI.java