No, we are trying to be js2 compliant going forward, so we want this in trunk. You should be able to have a stray comma before a close } or ] in an object or array literal. It's just a cleanup so you don't have to use the whacky convention of LzSprite:

{
  ...
  ,foo: ...
}

On 2008-01-09, at 14:34 EST, Donald Anderson wrote:

We want to fix just in SWF9?

On Jan 9, 2008, at 11:07 AM, P T Withington wrote:

This was an error in es3 but is now allowed in es4, so you should file a bug for Don to fix.

On Jan 9, 2008, at 10:40, "Henry Minsky" <[EMAIL PROTECTED]> wrote:

I get a parser error thrown bwhen I make an array with a trailing comma after the last element, like

       var forceload =  [LzText,
                         // LzInputText.
                         LzView,
                         LzNode,
                         LzAnimator,
                         LzAnimatorGroup,
                         LzLayout,
                         LzScript,

                         ];

I thought this was legal in JS, or maybe that's Python I'm thinking of?

[echo] Compiling C:\users\hqm\openlaszlo\devildog/lps/includes/ lfc/LFC9.lzl
    [java] No prec for ASTEmptyExpression in
    [java] org.openlaszlo.sc.CompilerException
[java] at org .openlaszlo .sc.ParseTreePrinter.maybeAddParens(ParseTreePrinter.java:624) [java] at org.openlaszlo.sc.ParseTreePrinter.visitArrayLiteral (ParseTreePrinter.java:569) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:279) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit( ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit( ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit( ParseTreePrinter.java:160) [java] at org .openlaszlo .sc.ParseTreePrinter.makeTranslationUnits(ParseTreePrinter.java:833) [java] at org .openlaszlo .sc.SWF9Generator.makeTranslationUnits(SWF9Generator.java :743) [java] at org.openlaszlo.sc.Compiler.compile(Compiler.java: 349)
    [java]     at org.openlaszlo.sc.lzsc.compile(lzsc.java:110)
    [java]     at org.openlaszlo.sc.lzsc.compile(lzsc.java:322)
    [java]     at org.openlaszlo.sc.Main.main(Main.java:10)
    [java] No prec for ASTEmptyExpression in
    [java] org.openlaszlo.sc.CompilerException
[java] at org.openlaszlo.sc.ParseTreePrinter.maybeAddParens (ParseTreePrinter.java:624) [java] at org .openlaszlo .sc.ParseTreePrinter.visitArrayLiteral(ParseTreePrinter.java:569) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:279) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit (ParseTreePrinter.java:160) [java] at org.openlaszlo.sc.ParseTreePrinter.visit(ParseTreePrinter.java:160)


On Jan 9, 2008 10:35 AM, Henry Minsky < [EMAIL PROTECTED]> wrote: I guess I can have a statement at the start of the LzApplication main class, that just makes a list of all the LFC classes that have LZX tag names, and that will force them to be loaded.


On Jan 9, 2008 10:33 AM, Henry Minsky <[EMAIL PROTECTED]> wrote: Interesting... LzNode looks at the ConstructorMap *before* it creates an LzText, so that would explain why it isn't there yet. Given this behavior, anyone have any suggestions as to how to build the constructormap table in the distributed way we're doing it currently?.

For now, I'm just going to hardcode the whole table into the Laszlo application startup class I'm building.




On Jan 9, 2008 10:29 AM, Donald Anderson < [EMAIL PROTECTED]> wrote:
Henry,

At the time you have looked at ConstructorMap, have you
already created a LzText object?  If not, maybe it's doing
lazy creation of the classes - I know that Java does this -
static initializers and blocks don't occur until the class is
loaded, and a class may not be loaded until some code executes
that either creates an object of that type or references a static method/var.

On Jan 9, 2008, at 9:59 AM, Henry Minsky wrote:


In one of the LFC files I declare a global

var ConstructorMap = {};

which gets turned into it's own declaration file by the script compiler

ConstructorMap.as:

package {
 public var ConstructorMap = {};
}


In each LFC file I have a statement to add a tag to this global


dynamic class LzView extends LzNode {
   static var tagname = 'view';
   ConstructorMap[tagname] = LzView;


dynamic class LzAnimator extends LzAnimatorGroup {
 static var tagname = 'animator';
 ConstructorMap[tagname] = LzAnimator;


dynamic class LzText extends LzView  {
   static var tagname = 'text';
   ConstructorMap[tagname] = LzText;

But when the system is running, there is no entry in ConstructorMap['text'], in fact
the only entries in the ConstructorMap are

view: [class LzView], node: [class LzNode], canvas: [class LzCanvas],

missing are animator, layout, animatorgroup, text

So I'm wondering is there some arbitrary ordering issue where some of the classes are executing the "ConstructorMap[foo] = bar" before ConstructorMap actually gets initialized, and silently failing, or what? I can't figure out if this is a compiler bug in Flex or if I'm doing something wrong. According to the AS3 docs, statements at the top level of a class declaration get executed once when the class is defined. But I am wondering how that interacts with global var initializations,
maybe the order is arbitrary?





--
Henry Minsky
Software Architect
[EMAIL PROTECTED]



--

Don Anderson
Java/C/C++, Berkeley DB, systems consultant

voice: 617-547-7881
email:  [EMAIL PROTECTED]
www: http://www.ddanderson.com







--
Henry Minsky
Software Architect
[EMAIL PROTECTED]




--
Henry Minsky
Software Architect
[EMAIL PROTECTED]




--
Henry Minsky
Software Architect
[EMAIL PROTECTED]



--

Don Anderson
Java/C/C++, Berkeley DB, systems consultant

voice: 617-547-7881
email: [EMAIL PROTECTED]
www: http://www.ddanderson.com





Reply via email to