Summary: First step to eliminating class shim
Bugs Fixed:
LPP-2301 Make it possible to remove compatibility layer
Technical Reviewer: hminsky (pending)
QA Reviewer: mamye (pending)
Doc Reviewer: pbr (pending)
Documentation:
The old Class mechanism took args (classname, superclass,
instanceInitializer, classInitializer). Any other instance
properties (attributes or methods) were defined by setting them on
the class prototype, and class properties similarly on the class.
In the NewClass mechanism, the 3rd and 4th arguments are a hash of
instance and class properties respectively.
In Javascript 2 there is a class declaration syntax:
class <name> [extends <super>] {
[[var <name> [= value]] |
function <name> (..) { ... }]]*
}
We want to convert all the class definitions in .lzs files in the
LFC to the Javascript 2 syntax.
[I have not yet implemented scope declarations in our parser, so
we do not yet support class properties in the new syntax. For
class properties, you will have to write the call to NewClass.make
in longhand.]
Details:
Class: Change 4th arg to NewClass and Trait to be a hash of class
properties, rather than just the class.initialize method.
LzClass: use new Class API
LzDictionary: example of Javascript 2 class syntax
JavascriptGenerator, CodeGenerator: translate Javascript 2 class
syntax into a call to NewClass.make.
Tests: smoke/simple, LXPIX
Files:
M lps/lfc/core/LzClass.lzs
M lps/lfc/core/LzDictionary.lzs
M lps/lfc/core/Class.lzs
M lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java
M lps/server/src/org/openlaszlo/sc/CodeGenerator.java
patch.ptw.gZOv.tgz
Description: Binary data
_______________________________________________ Laszlo-dev mailing list [email protected] http://www.openlaszlo.org/mailman/listinfo/laszlo-dev
