History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: LPP-1587
Type: Task Task
Status: Closed Closed
Resolution: Fixed
Priority: P0 P0
Assignee: Unassigned
Reporter: Amy Muntz
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OpenLaszlo

ECMA4: Compile LZX declarations as JS declarations

Created: 15/Feb/06 06:41 AM   Updated: 20/Mar/08 04:24 AM
Component/s: Compiler - JavaScript
Affects Version/s: 4.0.0
Fix Version/s: RingDing (4.1)

Time Tracking:
Not Specified

Severity: Major
Fixed in Change#: 8,293
Runtime: N/A
Release Note Text:
+ The syntax <method event="eventname"> is now deprecated and will trigger a compiler warning. You should update your code to use <handler name="eventname">. In the case where the method is named (<method event="eventname" name="methodname">) you will have to split the declaration into a handler (<handler name="eventname" method="methodname" />) and a method (<method name="methodname">). [This syntax allows subclasses to override the method that will be handling the event. See the documentation for `handler` for further details and examples.]

+ In previous versions of LZX, you could potentially create a duplicate attribute with no warning from the compiler. For example:

<class name="zot">
  <attribute name="name" value="${'bar'}" />
</class>

In the above example, the attribute named `name` is defined both in the open tag of the class and as an attribute. This is illegal and could lead to ambiguous or unpredictable results. The compiler will now warn that you have a duplicated attribute. You will have to rename one of the duplicate cases to ensure that your code works as expected.

+ Initial values, initial expressions ($once, $path, $style, and $always), now are created as a unified list in the tag compiler solving several issues with overriding/inheritance of attribute values and constraints and enabling the solution to an issue with states and constraints. As a result, if you override `LzNode#construct`, and attempt to manipulate the `args` list, you must be aware that some values in that list will be `LzInitExpr`s and cannot be directly inspected. These value represent consraints that will be applied by LzNode#__LZapplyArgs.

+ 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.

+ The classes that represent LZX-defined classes now have an internal name. If you want to know the name of the tag that defined an object, you should ask
`<object>.constructor.tagname`, not `<object>.constructor.classname`.

+ `getAttribute` is deprecated. You should just reference the attribute directly. getters are no longer supported.


 Description  « Hide
Compile declarations such as:

 <attribute name="x" type="number">

to JavaScript such as:

 var x : Number;

This could enable additional optimizations.

 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
P T Withington - 21/Jan/08 11:14 AM
We need this for DevilDog

P T Withington - 21/Jan/08 12:50 PM
[Part 1 of N]

r7866 | ptw | 2008-01-21 15:48:53 -0500 (Mon, 21 Jan 2008) | 23 lines
Changed paths:
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/UserClass.lzs
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java

Change 20080121-ptw-u by ptw@dueling-banjos.local on 2008-01-21 12:41:46 EST
    in /Users/ptw/OpenLaszlo/ringding
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Compile <event> as instance var with proper type and default value

Bugs Fixed:
LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)

Technical Reviewer: dda@ddanderson.com (pending)
QA Reviewer: henry.minsky@gmail.com (pending)

Details:
    LzNode, UserClass: remove processing of (now obsolete) $events
    attr.

    NodeModel: Compile <event> as instance var with proper type and
    default value

Tests:
    smokecheck, amazon, ant lzunit


P T Withington - 22/Jan/08 04:58 AM
[Part 2 of N]

r7868 | ptw | 2008-01-22 07:57:17 -0500 (Tue, 22 Jan 2008) | 23 lines
Changed paths:
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/UserClass.lzs
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java

Change 20080122-ptw-p by ptw@dueling-banjos.local on 2008-01-22 07:42:43 EST
    in /Users/ptw/OpenLaszlo/ringding
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Declare anonymous setters as methods at compile time

Bugs Fixed:
LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)

Technical Reviewer: dda@ddanderson.com (pending)
QA Reviewer: henry.minsky@gmail.com (pending)

Details:
    LzNode, UserClass: $setters is now a map of attribute name to
    setter method name (not function expressions that need to be
    dynamically installed as methods).

    NodeModel: Translate setter bodies into methods in the 'lzc' namespace.

Tests:
    smokecheck, amazon, ant lztest


P T Withington - 04/Feb/08 03:57 PM
r7958 | ptw | 2008-02-04 18:56:38 -0500 (Mon, 04 Feb 2008) | 25 lines
Changed paths:
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java

Change 20080203-ptw-p by ptw@dueling-banjos.local on 2008-02-03 11:50:17 EST
    in /Users/ptw/OpenLaszlo/ringding-2
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Make handler reference functions be methods

Bugs Fixed:
LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)

[Part 3 of N]

Technical Reviewer: dda@openlaszlo.org (Message-Id: <4716B267-21C8-4F6B-B94B-A9A9D2F1BF86@ddanderson.com>)
QA Reviewer: henry.minsky@gmail.com (pending)

Details:
    LzNode: The 3rd element of a delegate is now the _name_ of the
    method that computes the sender, not a function.

    NodeModel: Centralize the computation of delegates into a single
    subroutine shared by addHandlerElement, addHandlerFromAttribute,
    and (for backwards compatibility) addMethodElement. Warn that
    defining handlers using the method event property is deprecated.

Tests:
    smokecheck, amazon X swf, dhtml


P T Withington - 08/Feb/08 05:29 AM
See also LPP-631, LPP-2894

P T Withington - 10/Feb/08 05:11 AM
Adding release note on how to deal with the new compiler warning.

P T Withington - 20/Feb/08 02:48 PM
Append additional release note.

P T Withington - 20/Feb/08 04:56 PM
[part 4 of N]

r8032 | ptw | 2008-02-14 14:57:01 -0800 (Thu, 14 Feb 2008) | 65 lines

Change 20080208-ptw-T by ptw@dueling-banjos.local on 2008-02-08 08:18:39 EST
    in /Users/ptw/OpenLaszlo/ringding
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Unify argument initialization

Bugs Fixed:
LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)
LPP-631 'can't override a constraint with a literal with state attributes'

Technical Reviewer: a.bargull@intensis.de (Message-ID:
<47B4B8C7.2020809@intensis.de>)
QA Reviewer: henry.minsky@gmail.com (pending)

Details:

    Initial values, initial expressions ($once, $path, but not $style,
    yet), and constraints ($always), now are created as a unified list
    in the tag compiler solving several issues with
    overriding/inheritance of attribute values and constraints and
    enabling the solution to an issue with states and constraints.

    TextStprite: Update test for constraint on width or height.

    LzNode, UserClass: Simplify attribute inheritance/override computation,
    maintain backward-compatible magic-merge of attribute values (for
    now).

    LzNode: Update documentation of `construct` to note that
    constraints are now unified in `args`. __LZapplyArgs uses new
    args organization to sort out initialization expressions and
    constraints. __LZresolveReferences uses the new information to
    run initialization expressions and install constraints.
    __LZresolveRefs no longer needed. applyConstraint deprecated, but
    backward-compatible. New interface: applyConstraintMethod.
    Private releaseConstraint did not work, removed. New interface:
    releaseConstraintMethod.

    LzDefs: Turn LzDeclaredEvent into a singleton class. Add private
    support classes LzInitExpr and LzConstraintExpr.

    LaszloView: Update test for constraints. Fix setAlign and
    setValign to work with constraint methods, and to correctly work
    if alignment is changed (to release previous constraint).

    LaszloCanvas: Update __LZcallInit to parallel LzNode more
    closely.

    LzState: Update capturing of held args and constraints. Use this
    new organization to release constraints the state will override
    (and re-apply them when the state is removed). Remmove unused
    __LZstoreRefs.

    LzReplicationManager: Fix xpath constraint to work with constraint
    methods.

    Function.java: Make Function#name public.

    NodeModel.java: Coalesce $once, $path, $always into single
    arglist, distinguishing 'binders' by internal type, either
    LzInitExpr or LzConstraintExpr.

Tests:
    smokecheck, amazon, most-components


P T Withington - 22/Feb/08 11:05 AM
[part 5 of N]

r8090 | ptw | 2008-02-22 14:02:04 -0500 (Fri, 22 Feb 2008) | 52 lines
Changed paths:
   M /openlaszlo/trunk/WEB-INF/lps/lfc/compiler/LzFormatter.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/LzDefs.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/helpers/LzState.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/services/LzFocus.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/views/LzText.lzs
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/css/CSSHandler.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/ReferenceCollector.java
   M /openlaszlo/trunk/lps/components/lzunit/lzunit.lzx
   M /openlaszlo/trunk/test/style/constraints/subclassing.lzx

Change 20080220-ptw-t by ptw@dueling-banjos.local on 2008-02-20 19:36:51 EST
    in /Users/ptw/OpenLaszlo/ringding
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Handle $style constraints in the unified argument processor

Bugs Fixed:
LPP-1187 'overriding a literal with a constraint results in wrong value being assigned before constraint is resolved'
LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)
LPP-4451 '$style cannot override other constraints'
LPP-5444 'Now we've got Super-Constraints!'


Technical Reviewer: max (pending)
QA Reviewer: mamye (pending)

Details:
    subclassing.lzx: Uncomment test for lpp-4451, add inverse test,
    annotate some assertions for easier debugging.

    LzFocus: Fix a type inconsistency that was triggering a warning in
    smokecheck.

    LzNode: Delete old $style implementation, add styleBinder, add some
    debug checks, permit constraints with no dependencies.

    LzDefs: Add style init expressions and style attribute binders.

    LzText: Teeny optimization.

    LzState: Simplify cloning. Back out restoration of constraints
    added in r8032 because it breaks dragstate and resizestate.

    LzFormatter: Fix pad to enforce max decimals bug revealed by
    Firefox precision improvements in smokecheck.

    CSSHandler: Use style expressions instead of closures.

    ReferenceCollector: Correct comment

    NodeModel: Move style processing into unified attribute list, add
    some asserts.

    lzunit.lzx: fail now will supply file/line for failed assertions
    if backtracing is on.

Tests:
    test/style/constraints/subclassing.lzx
    Test cases from LPP-1187, 4451
    smokecheck, Amazon


P T Withington - 16/Mar/08 11:42 AM
[part 6 of N]

r8284 | ptw | 2008-03-16 15:41:02 -0400 (Sun, 16 Mar 2008) | 19 lines
Changed paths:
   M /openlaszlo/trunk/lps/components/base/basecomponent.lzx
   M /openlaszlo/trunk/lps/components/base/basedatacombobox.lzx
   M /openlaszlo/trunk/lps/components/base/baselist.lzx
   M /openlaszlo/trunk/lps/components/base/basescrollbar.lzx
   M /openlaszlo/trunk/lps/components/base/basetabslider.lzx
   M /openlaszlo/trunk/lps/components/base/componentmanager.lzx
   M /openlaszlo/trunk/lps/components/base/style.lzx
   M /openlaszlo/trunk/lps/components/base/swatchview.lzx
   M /openlaszlo/trunk/lps/components/charts/common/chart.lzx
   M /openlaszlo/trunk/lps/components/charts/common/dataseries.lzx
   M /openlaszlo/trunk/lps/components/debugger/newcontent.lzx
   M /openlaszlo/trunk/lps/components/debugger/scrollingtext.lzx
   M /openlaszlo/trunk/lps/components/extensions/av/mediastream.lzx
   M /openlaszlo/trunk/lps/components/extensions/av/rtmpconnection.lzx
   M /openlaszlo/trunk/lps/components/extensions/av/videoview.lzx
   M /openlaszlo/trunk/lps/components/incubator/autocompletecombobox.lzx
   M /openlaszlo/trunk/lps/components/incubator/baseradio.lzx
   M /openlaszlo/trunk/lps/components/incubator/colorpicker.lzx
   M /openlaszlo/trunk/lps/components/incubator/fisheye_lib.lzx
   M /openlaszlo/trunk/lps/components/incubator/gradientview.lzx
   M /openlaszlo/trunk/lps/components/incubator/opttree/opttree.lzx
   M /openlaszlo/trunk/lps/components/incubator/rich-text/linkdialog.lzx
   M /openlaszlo/trunk/lps/components/incubator/rich-text/test/richtexteditarea-test.lzx
   M /openlaszlo/trunk/lps/components/incubator/test/tooltipmanager-test.lzx
   M /openlaszlo/trunk/lps/components/incubator/tooltipmanager.lzx
   M /openlaszlo/trunk/lps/components/incubator/uploader/example/test-fileuploadlist.lzx
   M /openlaszlo/trunk/lps/components/incubator/uploader/example/test-multiplefileupload.lzx
   M /openlaszlo/trunk/lps/components/incubator/uploader/multiplefileupload.lzx
   M /openlaszlo/trunk/lps/components/incubator/validators/basevalidator.lzx
   M /openlaszlo/trunk/lps/components/incubator/validators/validatingForm.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/barchart.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/linechart.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/piechart.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/basechart.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/basechartbacking.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/dataseries.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/legend.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/wholepie.lzx
   M /openlaszlo/trunk/lps/components/rpc/rpc.lzx
   M /openlaszlo/trunk/lps/components/rpc/xmlrpc.lzx

Change 20080316-ptw-N by ptw@dueling-banjos.local on 2008-03-16 15:35:22 EDT
    in /Users/ptw/OpenLaszlo/ringding-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Update components to use lz "namespace" to access tag classes

Bugs Fixed:
LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)

Technical Reviewer: max (pending)
QA Reviewer: henry (pending)

Details:
    Fixed all class references. Removed use of getAttribute.

Tests:
    Inspection



P T Withington - 16/Mar/08 11:57 AM
[part 7 of N]

r8285 | ptw | 2008-03-16 15:57:05 -0400 (Sun, 16 Mar 2008) | 21 lines
Changed paths:
   M /openlaszlo/trunk/test/smoke/all_setters.lzl
   M /openlaszlo/trunk/test/smoke/getters-setters.lzl
   M /openlaszlo/trunk/test/smoke/regression.lzl
   M /openlaszlo/trunk/test/smoke/smokecheck.lzx

Change 20080316-ptw-U by ptw@dueling-banjos.local on 2008-03-16 15:55:02 EDT
    in /Users/ptw/OpenLaszlo/ringding-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Modernize smokecheck

Bugs Fixed:
LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)

Technical Reviewer: max (pending)
QA Reviewer: henry (pending)

Details:
    regression, all_setters, smokecheck, getters-setters: update to modern class names,
    remove obsolete getAttribute calls. Fix one broken test, comment
    out other broken test (reported LPP-5160).

Tests:
    smokecheck


P T Withington - 17/Mar/08 08:19 AM
[Part 8 of n]

r8292 | ptw | 2008-03-17 12:18:07 -0400 (Mon, 17 Mar 2008) | 20 lines
Changed paths:
   M /openlaszlo/trunk/lps/components/base/basetabs.lzx
   M /openlaszlo/trunk/lps/components/charts/common/chart.lzx
   M /openlaszlo/trunk/lps/components/charts/common/dataseries.lzx
   M /openlaszlo/trunk/lps/components/charts/common/rectangularchart.lzx
   M /openlaszlo/trunk/lps/components/charts/common/viewspoolmanager.lzx
   M /openlaszlo/trunk/lps/components/charts/styles/styleparser.lzx
   M /openlaszlo/trunk/lps/components/extensions/views/richinputtext.lzx
   M /openlaszlo/trunk/lps/components/incubator/baseradio.lzx
   M /openlaszlo/trunk/lps/components/incubator/rich-text/richtexteditarea.lzx
   M /openlaszlo/trunk/lps/components/incubator/scrolledittext.lzx
   M /openlaszlo/trunk/lps/components/incubator/test/test-edittext.lzx
   M /openlaszlo/trunk/lps/components/incubator/tooltipmanager.lzx
   M /openlaszlo/trunk/lps/components/lz/datepicker.lzx
   M /openlaszlo/trunk/lps/components/lz/grid.lzx
   M /openlaszlo/trunk/lps/components/lz/list.lzx
   M /openlaszlo/trunk/lps/components/lz/menu.lzx
   M /openlaszlo/trunk/lps/components/lzunit/lzunit.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/linechart.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/piechart.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/barchartbacking.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/legend.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/linechartbacking.lzx
   M /openlaszlo/trunk/lps/components/queens-charts/shared/wholepie.lzx
   M /openlaszlo/trunk/lps/components/utils/diagnostic/inspector/inspector.lzx

Change 20080317-ptw-i by ptw@dueling-banjos.local on 2008-03-17 12:11:02 EDT
    in /Users/ptw/OpenLaszlo/ringding-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: More class/namespace fix-ups

Bugs Fixed:
LPP-1587 'ECMA4: Compile LZX declarations as JS declarations' (partial)

Technical Reviewer: hqm (pending)
QA Reviewer: max (pending)
Doc Reviewer: (pending)

Details:
    More lz.<tagname> fixes

Tests:
    Inspection



P T Withington - 17/Mar/08 09:33 AM
[Part 9 of 9: This is 99% done, there may be bugs still in a few examples and demos which we will fix piecemeal; and there is probably some work to get it to actually work 100% with devildog, but that will also be happening piecemeal. I'm closing this bug so texting and debugging can happen in parallel.]

r8293 | ptw | 2008-03-17 13:24:25 -0400 (Mon, 17 Mar 2008) | 109 lines
Changed paths:
   M /openlaszlo/trunk/WEB-INF/lps/lfc/controllers/LaszloAnimation.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/controllers/LaszloLayout.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/controllers/LzAnimatorGroup.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/LzDefs.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/LzNode.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/core/UserClass.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataElement.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataProvider.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataRequest.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataText.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDatapath.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDatapointer.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzDataset.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzHTTPDatasource.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzParam.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/LzReplicationManager.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/platform/swf/LzConnection.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/data/platform/swf/LzConnectionDatasource.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/helpers/LzCommand.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/helpers/LzDataSelectionManager.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/helpers/LzSelectionManager.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/helpers/LzState.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/kernel/LzLibraryCleanup.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/kernel/dhtml/LzLibrary.js
   M /openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf/LzLibrary.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzLibrary.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/views/LaszloCanvas.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/views/LaszloView.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/views/LzInputText.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/views/LzScript.lzs
   M /openlaszlo/trunk/WEB-INF/lps/lfc/views/LzText.lzs
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CanvasCompiler.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassCompiler.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/ClassModel.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/CompilationEnvironment.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/compiler/NodeModel.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/CodeGenerator.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/CommonGenerator.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/ScriptClass.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/sc/ScriptCompiler.java
   M /openlaszlo/trunk/WEB-INF/lps/server/src/org/openlaszlo/xml/internal/Schema.java
   M /openlaszlo/trunk/lps/components/base/baseslider.lzx

Change 20080313-ptw-5 by ptw@dueling-banjos.local 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)
LPP-2817 'Remove deprecated support for global tag classes'

Technical Reviewer: henry.minsky@gmail.com (verbal)
QA Reviewer: max@openlaszlo.org (pending)
Doc Reviewer: lou@louiorio.com (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.

    baseslider: Interestingly, with the corrected initialization
    order, I need to back out the previous change to this, to prevent
    recursion. This is clearly a very fragile piece of code...

Tests:
    smokecheck (minus broken test LPP-5610) passes in both runtimes,
    amazon runs in both runtimes


Mamye Kratt - 19/Mar/08 03:03 PM
(trunk 4 build r8276)
Ran smokecheck in swf and dhtml
Ran amazon in swf and dhtml
Ran runlzunit

P T Withington - 20/Mar/08 04:14 AM
Update release notes