Skip to content

Jangaroo Tools Backlog

Frank Wienberg edited this page May 20, 2011 · 16 revisions

Jangaroo Tools Backlog

Compiler output/runtime

Roughly in prioritized order, with higher priority first:

  • add implicit type casts: var x:int = 5.5
  • reuse original error messages and codes, see AS3 Compile Errors
  • implement getter and setter functions for IE < 9 (that’s a tough one, but now possible\!)
  • initialize typed local variables with default values depending on type. Do it right after the begin brace of the current function block (possible optimization: use simple flow analysis to determine whether initialization is necessary: first read before first write)
  • new import runtime syntax: assign imported classes to variables defined on class level to get rid of fully qualified access, in order to a) reduce dereferencing and b) keep generated code closer to source code (see code example below). Problem: initializing constructor changes class object on first usage! Maybe only shortcuts for packages?
  • understand and fix method overriding between interfaces (see UI-Toolkit’s RemoteBean)
  • understand and fix if override keyword is needed / allowed when overriding Object methods
  • allow other primary declaration types than class, e.g. package-scoped functions, variables, and constants.
  • allow static code blocks without blocks (i.e. without braces)

Code sample for new import runtime syntax (see above) :

 import flash.events.Event;
 import flash.events.TimerEvent;
 import flash.utils.Timer;
 import flexunit.framework.Assert;
 import flexunit.foo.*;

becomes
function(){var Event=/*
   import */flash.events.Event, TimerEvent=/*
   import */flash.events.TimerEvent, Timer=/*
   import */flash.utils.Timer, Assert=/*
   import */flexunit.framework.Assert, Foo=/*
   import */flexunit.foo.Foo, Bar=flexunit.foo.Bar;

   // function body uses Event, TimerEvent, ...
}
  • compiler/runtime unit tests:
    • write them in AS3 (strip down FlexUnit 3?) and run them with both Jangaroo runtime inside Rhino and with Flex/Flash runtime
    • run them inside all target browsers (e.g. with Selenium)

Done:

  • do NOT bind “this” in non-method functions! Although some tools (IDEA) think so, AS3 does not work like this!
  • AST: remove parentNode, change return type of analyze() to void

Standard Classes Library

Done:

  • add AsDoc for all standard AS3 classes. Adobe-Reference-AsDoc-Screenscraping tool!

Maven Integration

Allow filtering for properties files before they are compiled to AS3.

Provide option to package test classes in separate artifact with tests classifier (see jar plugin).

Add Maven archetypes:

  • jangaroo-basic (hello world)
  • jangaroo-webapp (multi-module)
  • jangaroo-lib (multi-module?)

Jangaroo Website

Replace Download Page by Link to GitHub

IDEA Tipps’n’Tricks

  • Flex plugin required
  • useful inspection settings
  • workarounds (e.g. Maven artifact update problem in IDEA 9)

Mention Hudson Plugin

Clone this wiki locally