question about porting to AS3:

in LzNode:

function $lzc$set_options(hash) {
    // Ensure you have your own private options dictionary, not the one
    // inherited from your class, nor the default empty one inherited
    // from LzNode!
    if (this.options === this['constructor'].prototype.options) {
      this.options = new LzInheritedHash(this.options);
    }
    for (var key in hash) {
      this.options[ key ] = hash[key];
    }
  }



In order to get the class static var "options", I wonder if
this['constructor'].prototype.options will work in AS3 to get the
class var?  Maybe it will have to be conditionalized to be
this['constructor'].options in for the SWF9 case?





On Sun, Mar 16, 2008 at 4:33 PM, P T Withington <[EMAIL PROTECTED]> wrote:
> [UPDATED: Ok, with this update, the smokecheck passes and Amazon seems
>  to work for me.  I'd like to check this in so Henry/Don can work on
>  porting it to devildog while Max/I continue debugging in trunk.]
>
>  Change 20080313-ptw-5 by [EMAIL PROTECTED] on 2008-03-13
>  10:54:50 EDT
>      in /Users/ptw/OpenLaszlo/ringding-clean
>      for http://svn.openlaszlo.org/openlaszlo/trunk
>
>  Summary: LZX classes as JS2 classes
>
>  New Features: The tag compiler now emits LZX classes as JS2 class
>  declarations
>
>  Bugs Fixed:
>  LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)
>
>  Technical Reviewer: [EMAIL PROTECTED] (pending)
>  QA Reviewer: [EMAIL PROTECTED] (pending)
>  Doc Reviewer: [EMAIL PROTECTED] (pending)
>
>  Release Notes:
>      Classes defined using the <class name="name"> _must_ be referenced
>      in script as `lz.name`, there will no longer be a global alias
>      `name` that refers to the class implementing the tag.
>
>      getAttribute is deprecated.  You should just reference the
>      attribute directly.  getters are no longer supported.
>
>  Details:
>      Highlights:  The tag compiler now emits user classes as a JS2
>      class declaration.  UserClass.lzs is dead.  Setters are now just
>      methods on a class with a distinctive name, so the whole setters
>      table inheritance mechanism is gone.  Early/delayed setters is a
>      private protocol between LzNode and LzView.  All classes have a
>      uniform 'namespace' naming scheme: $lzc$class_<tagname>, old LFC
>      class names are maintained for compatibility, but there are NO
>      global class names any more.  All user code will have to be
>      updated to use lz.<tagname> to address classes for `new` or
>      `instanceof` tests.
>
>      Every LFC Class: Use new static `attributes` mechanism, new
>      setters methods naming scheme, remove old setters table.
>
>      LzNode: Implement new static `attributes` mechanism.  Break out
>      mergeAttributes and mergeChildren as class methods so they can be
>      used by user classes.  Fetch default attributes from constructor.
>      Install decls compiler can't detect.  Merge with instantiation
>      attributes.  Use common merge subroutines.  Install namespace
>      alias.  Remove all obsolete inherited hashes now that we use class
>      inheritance to manage that.  Early/delayed setters are now a
>      private protocol between Node and View.  No other classes should
>      use these.  In applyArgs look for setters as methods.  Deprecate
>      getAttribute, getters have not been supported for a long time.
>      Update setAttribute to use setter methods.  Remove old setters
>      mechanism.  Deprecate __LZaddSetter, __LZstoreRefs -- private
>      protocol no longer supported.  Change options setters to create
>      necessary inherited hash on the fly.
>
>      UserClass: Empty, save for documentation and the placement kludge.
>
>      LzDefs: Flatten inherited hash so we can dispense with
>      _ignoreAttribute (and be portable!).
>
>      LzView, LzCanvas: Cooperate with LzNode on early/late setters.
>
>      LzState: Adapt to new user class implementation which may place
>      state methods in the wrong place, and won't allow dynamically
>      adding setters.
>
>      TODO: Clean up the setter trampolines to be the actual setters
>      and have the old public setXXX methods call them (with a
>      deprecation warning where appropriate).
>
>      Schema: intern types.
>
>      JavascriptGenerator: Don't make checked nodes outside of a
>      function context (you won't have a 'this').
>
>      JavascriptGenerator, CodeGenerator: Temporarily turn of
>      setAttribute inlining until it can be updated.
>
>      CommonGenerator: Translate declared attributes as having an
>  undefined
>      initial value.
>
>      ScriptCompiler: Support for converting objects to script,
>      including undefined values.
>
>      ScriptClass: Complete implementation that writes out a class as a
>      JS2 class declaration.
>
>      ClassCompiler: Compile user classes to JS2 class declarations,
>      which mostly involves mimicing the way UserClass used to
>      initialize according to the various types of initial values,
>      setters, and stateliness that you might have.
>
>      CanvasCompiler, CompilationEnvironment, etc.: Eliminate vestigial
>      support for case-insensitive runtimes
>
>      NodeModel: Support class compilation by delaying conversion of
>      bindings for attributes.
>
>      ClassModel:  Support for (not yet used) merging of superclass
>      attributes and setters.  Missing modelling of built-in classes.
>
>  Tests:
>      smokecheck (minus broken test LPP-5610) passes in both runtimes,
>      amazon runs in both runtimes
>
>  Files:
>  M      WEB-INF/lps/lfc/kernel/swf/LzLibrary.lzs
>  M      WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js
>  M      WEB-INF/lps/lfc/kernel/swf9/LzLibrary.lzs
>  M      WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs
>  M      WEB-INF/lps/lfc/core/LzNode.lzs
>  M      WEB-INF/lps/lfc/core/UserClass.lzs
>  M      WEB-INF/lps/lfc/core/LzDefs.lzs
>  M      WEB-INF/lps/lfc/views/LzInputText.lzs
>  M      WEB-INF/lps/lfc/views/LzScript.lzs
>  M      WEB-INF/lps/lfc/views/LzText.lzs
>  M      WEB-INF/lps/lfc/views/LaszloView.lzs
>  M      WEB-INF/lps/lfc/views/LaszloCanvas.lzs
>  M      WEB-INF/lps/lfc/helpers/LzDataSelectionManager.lzs
>  M      WEB-INF/lps/lfc/helpers/LzCommand.lzs
>  M      WEB-INF/lps/lfc/helpers/LzSelectionManager.lzs
>  M      WEB-INF/lps/lfc/helpers/LzState.lzs
>  M      WEB-INF/lps/lfc/controllers/LzAnimatorGroup.lzs
>  M      WEB-INF/lps/lfc/controllers/LaszloLayout.lzs
>  M      WEB-INF/lps/lfc/controllers/LaszloAnimation.lzs
>  M      WEB-INF/lps/lfc/data/LzReplicationManager.lzs
>  M      WEB-INF/lps/lfc/data/platform/swf/LzConnectionDatasource.lzs
>  M      WEB-INF/lps/lfc/data/platform/swf/LzConnection.lzs
>  M      WEB-INF/lps/lfc/data/LzDatapointer.lzs
>  M      WEB-INF/lps/lfc/data/LzDataText.lzs
>  M      WEB-INF/lps/lfc/data/LzDataRequest.lzs
>  M      WEB-INF/lps/lfc/data/LzDataElement.lzs
>  M      WEB-INF/lps/lfc/data/LzDataProvider.lzs
>  M      WEB-INF/lps/lfc/data/LzDataset.lzs
>  M      WEB-INF/lps/lfc/data/LzDatapath.lzs
>  M      WEB-INF/lps/lfc/data/LzHTTPDatasource.lzs
>  M      WEB-INF/lps/lfc/data/LzParam.lzs
>  M      WEB-INF/lps/server/src/org/openlaszlo/xml/internal/Schema.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/sc/CommonGenerator.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/sc/ScriptCompiler.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/sc/ScriptClass.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassCompiler.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/compiler/
>  CanvasCompiler.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/compiler/
>  CompilationEnvironment.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
>  M      WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java
>
>  Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20080313-ptw-5.tar
>



-- 
Henry Minsky
Software Architect
[EMAIL PROTECTED]

Reply via email to