Re: [FlexJS] Handling interfaces

2013-10-31 Thread Erik de Bruin
Hi, I'm busy building support for the is and as operators into FlexJS. Now, first I thought I'd try to compile the FlexJSTest_again example. To my suprise, I get an error: CSS codegen problem. Reason: 'Unable to find compilation unit for

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Alex Harui
I've been testing against DataBindingTest whose sources are up on my people.a.o folder, so maybe this doesn't build anymore, but the console output looks like you are referencing a full Apache Flex SDK instead of one that is overlaid, which might cause the compiler to find CSS files in a whole

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Erik de Bruin
And how does one 'overlay' an SDK? EdB On Thu, Oct 31, 2013 at 2:07 PM, Alex Harui aha...@adobe.com wrote: I've been testing against DataBindingTest whose sources are up on my people.a.o folder, so maybe this doesn't build anymore, but the console output looks like you are referencing a

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Alex Harui
By using the FlexJSOverlay.zip on my people.a.o folder. Instructions are available at https://cwiki.apache.org/confluence/display/FLEX/Using+FlexJS+with+Adobe+Fl ash+Builder -Alex On 10/31/13 6:20 AM, Erik de Bruin e...@ixsoftware.nl wrote: And how does one 'overlay' an SDK? EdB On Thu,

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Erik de Bruin
Ok... is that proprietary code, or just not in the repo yet? EdB On Thu, Oct 31, 2013 at 2:26 PM, Alex Harui aha...@adobe.com wrote: By using the FlexJSOverlay.zip on my people.a.o folder. Instructions are available at

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Alex Harui
Not sure what you're asking. There isn't any Adobe code in there. The zip contains binaries so it can't go in the repo. The sh/bat files in the zip are not in the repo because I keep hoping they will go away someday and be replaced by an installer. -Alex On 10/31/13 6:30 AM, Erik de Bruin

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Erik de Bruin
Basically, I'm complaining it's getting too hard to develop for this, but I guess that's to be expected at this stage. It's up and running now. EdB On Thu, Oct 31, 2013 at 2:33 PM, Alex Harui aha...@adobe.com wrote: Not sure what you're asking. There isn't any Adobe code in there. The zip

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Erik de Bruin
And I killed it again... Now I'm getting this (vaguely familiar) error: Using Falcon codebase: /Users/erik/Documents/ApacheFlex/git/flex-falcon/compiler.jx/bin/../../compiler Using Flex SDK: /Users/erik/Desktop/OverlayedSDK Exception in thread main java.lang.IllegalAccessError: tried to access

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Alex Harui
It's been so long since I've seen that, that I don't completely remember. I believe it could be a Java class path issue. That the compiler is picking up an different version of MapMaker than expected. -Alex On 10/31/13 9:58 AM, Erik de Bruin e...@ixsoftware.nl wrote: And I killed it again...

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Erik de Bruin
Ok, rounding off the 'is' and 'as' implementation. One quick question: how do I figure out - in FalconJx - if the 'current' class is the 'main' or 'toplevel' class? I need to inject a special 'goog.require', which I rather don't do in all classes, instead I'd like to only add it to the first

Re: [FlexJS] Handling interfaces

2013-10-31 Thread Alex Harui
There are a few places where there is a main compilation unit. I think even a mainCU variable. And you might be able to inject in the publishing phase. You know the main file by then as well. -Alex On 10/31/13 3:49 PM, Erik de Bruin e...@ixsoftware.nl wrote: Ok, rounding off the 'is' and

Re: [FlexJS] Handling interfaces

2013-10-30 Thread Alex Harui
Reviving this thread... Peter says he wants to test to see if an object implements an interface at runtime. What mechanism do we want to use? I don't think we need to make instanceof work, just have some test to call. -Alex On 7/30/13 12:46 AM, Erik de Bruin e...@ixsoftware.nl wrote: When

Re: [FlexJS] Handling interfaces

2013-10-30 Thread Erik de Bruin
instanceof doesn't check if an interface is implemented, neither in Flex nor using Closure inheritance in JavaScript. What we need for runtime checking of interface implementation is an global is function... I think I taught FalconJx to translate ClassA is ClassB as is(ClassA, ClassB). All we need

Re: [FlexJS] Handling interfaces

2013-10-30 Thread Erik de Bruin
Some guidance can be found here [1] and here [2]. EdB 1: http://blogs.adobe.com/bparadie/2011/11/26/classes-inheritance-interfaces-packages-and-namespaces/ 2: https://cwiki.apache.org/confluence/display/FLEX/Simulating+AS3+language+features+in+JavaScript+using+AMD+and+ES5 On Wed, Oct 30,

Re: [FlexJS] Handling interfaces

2013-10-30 Thread Peter Ent
Thanks, Erik. Interesting read. FlexJS uses a lot of interfaces so we'll have to find a reasonable solution for this. We've managed to avoid the situation in JavaScript but it is coming up quickly. --peter On 10/30/13 3:10 PM, Erik de Bruin e...@ixsoftware.nl wrote: Some guidance can be found

Re: [FlexJS] Handling interfaces

2013-10-30 Thread Erik de Bruin
I'll have a look at it today. EdB On Wednesday, October 30, 2013, Peter Ent wrote: Thanks, Erik. Interesting read. FlexJS uses a lot of interfaces so we'll have to find a reasonable solution for this. We've managed to avoid the situation in JavaScript but it is coming up quickly. --peter

Re: [FlexJS] Handling interfaces

2013-07-30 Thread Erik de Bruin
When using interfaces for type checking, there are two 'kinds': at compilation and at runtime. The @interface and @implements annotations are for compile time checking. For runtime checking comes in two flavours: 'instanceof' and 'is'. Our method of setting up inheritance (goog.inherits)

[FlexJS] Handling interfaces

2013-07-29 Thread OmPrakash Muppirala
On Mon, Jul 29, 2013 at 11:20 AM, Alex Harui aha...@adobe.com wrote: I think FalconJS was going to generate something like: if (child != undefined child.$implements[org.apache.flex.core.IChrome]) Not sure what it was going to do for classes, maybe chase the prototype chain? The