On Wed, Jun 17, 2015 at 11:25 AM, Frédéric THOMAS <webdoubl...@hotmail.com> wrote:
> > Oh yeah one other thing Fred, EVERYTING needs to extend JSObject that > > extends Object(in the externs def) for it to work correctly in IJ code > > completion. Or else IJ will think the HTML class extends it's ECMA2 > Object > > and not JSObject. > > Yes, it is what I meant but EVERYTHING in JS.swc only, right ? > Correct, it's just candy for the IDE. If somebody doesn't care about Object.create() or myInstance.__proto__ then it really doesn't matter. But we cannot call this true JS until we allow natively these properties and methods of ES3 and ES5 IMO. That is why eventually I am going to have to bite the bullet and implement this. I got a busy 2 weeks coming up, I have a lot of remodeling for my mother in law to do so I won't have as much time as I did these last 3 weeks, also why I busted my ass, so people could have something to try out. Mike > > Frédéric THOMAS > > > ---------------------------------------- > > Date: Wed, 17 Jun 2015 11:22:06 -0400 > > Subject: Re: [FlaconJX] JS.swc design problems (was [FlexJS] IntelliJ > Integration) > > From: teotigraphix...@gmail.com > > To: dev@flex.apache.org > > > > Oh yeah one other thing Fred, EVERYTING needs to extend JSObject that > > extends Object(in the externs def) for it to work correctly in IJ code > > completion. Or else IJ will think the HTML class extends it's ECMA2 > Object > > and not JSObject. > > > > Mike > > > > On Wed, Jun 17, 2015 at 11:20 AM, Michael Schmalle < > > teotigraphix...@gmail.com> wrote: > > > >> > >> > >> On Wed, Jun 17, 2015 at 11:12 AM, Frédéric THOMAS < > webdoubl...@hotmail.com > >>> wrote: > >> > >>>> What Fred is saying, Have JSObject extend Object. Thus JSObject would > >>> have > >>>> all ES3 and ES5 Object properties and methods, thus IJ would code hint > >>>> correctly > >>> > >>> I could be wrong but wrong but I would think it would work even though > >>> JSObject doesn't extend Object. > >>> When you construct JS.swc parsing the definition files, when you meet > the > >>> Named Object class, just re-write it as JSObject anywhere and while > >>> emitting the final JS file, re-write it as Object, that wouldn' do the > >>> trick ? > >>> > >> > >> > >> Yes, BUT Falcon COMPC still needs an Object definition to compile! ;-) > >> That is the sticker point here, you see my point? > >> > >> Although, maybe I could just include an empty Object and then it would > >> matter in IJ. > >> > >> Still the emitter will need to know about JSObject to transform it back > to > >> Object during cross compile. > >> > >> Mike > >> > >> > >> > >>> > >>>>> If Adobe adds something to Object in > >>>>> playerglobal/airglobal will IJ pick it up? > >>>>> > >>>> > >>>> I would bet it wouldn't. > >>> > >>> IJ would allow writing (without hints) and compile, due to the dynamic > >>> nature of Object. > >>> > >>> Frédéric THOMAS > >>> > >>> > >>> ---------------------------------------- > >>>> Date: Wed, 17 Jun 2015 10:51:09 -0400 > >>>> Subject: Re: [FlaconJX] JS.swc design problems (was [FlexJS] IntelliJ > >>> Integration) > >>>> From: teotigraphix...@gmail.com > >>>> To: dev@flex.apache.org > >>>> > >>>> On Wed, Jun 17, 2015 at 10:29 AM, Alex Harui <aha...@adobe.com> > wrote: > >>>> > >>>>> > >>>>> > >>>>> On 6/17/15, 7:20 AM, "Frédéric THOMAS" <webdoubl...@hotmail.com> > >>> wrote: > >>>>> > >>>>>>> Fred; The point is, you would have to rename every package level > >>> class > >>>>>>>to > >>>>>>> not get an ambiguous error in the IDE. > >>>>>> > >>>>>>Yes, but I guess it should be done for Object as there are no way to > >>> get > >>>>>>it in IJ as it has a hardcoded definition, the JSObject option seems > >>> good > >>>>>>to me, what about you ? > >>>>> > >>>>> Wouldn’t that mess up inheritance from everything that extends > Object? > >>>>> > >>>> > >>>> What Fred is saying, Have JSObject extend Object. Thus JSObject would > >>> have > >>>> all ES3 and ES5 Object properties and methods, thus IJ would code hint > >>>> correctly because it's using it's builtin ECMA2 Object def and the > >>> JSObject > >>>> would extend from that. > >>>> > >>>> As I said, this si complicated because on my end it would not be cut > and > >>>> dry how I could do this, would add a huge amount of indirection in the > >>> code > >>>> for the externs compiler and FlexJS emitter if we didn't have > metadata. > >>>> > >>>> > >>>> > >>>>> Can I get a more detailed technical understanding of this issue? How > >>> does > >>>>> IJ have a hard coded definition? > >>>> > >>>> > >>>> It uses an ECMA2 file for ActionScript which looks like a compiled > SWF I > >>>> would guess. It does not use the Object definitions from playerglobal > >>> in a > >>>> Flex/ActionScript project > >>>> > >>>> > >>>> > >>>>> Is this just for code completion in the > >>>>> editor or is it compile time as well? > >>>> > >>>> > >>>> It's code hinting. > >>>> > >>>> > >>>> > >>>>> I would think that if they are > >>>>> calling our compiler that we could control this issue. Is this a bug > >>>>> worth filing against IJ? > >>>> > >>>> > >>>> > >>>> Well IJ and JetBrains really seem disinterested with ActionScript > these > >>>> days. > >>>> > >>>> > >>>> > >>>>> If Adobe adds something to Object in > >>>>> playerglobal/airglobal will IJ pick it up? > >>>>> > >>>> > >>>> I would bet it wouldn't. > >>>> > >>>> > >>>> The ambiguous error is coming from MXMLC/JSC, its our compiler that is > >>>> barfing. > >>>> > >>>> > >>>> Mike > >>>> > >>>> > >>>>> > >>>>> -Alex > >>>>> > >>>>> > >>>>> > >>> > >>> > >> > >> > >