IntelliJ IDEA is an prominent IDE for ActionScript developers these days. I totally understand why you want this compiler to work well there. I use IntelliJ IDEA every day, so I would love it if everything worked there, out of the box.
I'm just throwing in my two cents about what I see as potential user experience issues, especially in other environments that don't have the same limitations. If I come off as overly critical or judgmental, I hope you can read that as me trying to be quick to help out where I can with the short time I have to contribute right now. - Josh On Wed, Jun 17, 2015 at 12:21 PM, Michael Schmalle < teotigraphix...@gmail.com> wrote: > Just to add, I am coming at this as a compiler dev not a user right now. So > Josh, I may seem short sighted trying to hack something with an IDE I use > but I hope you don't get that impression from me. > > I annoyed that IJ doesn't use the Object definition of our Object. > I have a feeling I know why and it has to do with their "language" plugin > because Flash support is really just javascript support with some addons. > > I already stated I don't want to do this JSObject thing, let the record be > known. :) > > But I also want as much chance for this little compiler project with JS to > have as much possible success. Not having native Object properties for ES3 > and ES5 seems strange to someone trying it. > > Mike > > On Wed, Jun 17, 2015 at 1:20 PM, Frédéric THOMAS <webdoubl...@hotmail.com> > wrote: > > > Well, looking at it better, we probably have everything we need with our > > OOP mechanism for not having to use it. > > > > Frédéric THOMAS > > > > > > ---------------------------------------- > > > From: aha...@adobe.com > > > To: dev@flex.apache.org > > > Subject: Re: [FlaconJX] JS.swc design problems (was [FlexJS] IntelliJ > > Integration) > > > Date: Wed, 17 Jun 2015 16:36:16 +0000 > > > > > > Along that line of thinking: What are some (or all) of the APIs on > Object > > > that are missing, and realistically, how often should someone want to > use > > > them? Do we think folks writing TS code use them? If not, and there is > a > > > different way to do the same thing in AS, and few folks are even going > to > > > hit this, maybe we just put it in the RELEASE_NOTES and see if we can > > > attract users and they will put the pressure on JetBrains. > > > > > > -Alex > > > > > > On 6/17/15, 9:28 AM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: > > > > > >>Seems to me like we could get a bunch of developers who are interested > in > > >>the compiler to pile on and vote on an issue to show that it's > important. > > >>I'd rather not have the compiler jump through hoops just to get one > buggy > > >>IDE to give proper code hinting. > > >> > > >>- Josh > > >> > > >>On Wed, Jun 17, 2015 at 8:34 AM, Michael Schmalle > > >><teotigraphix...@gmail.com > > >>> wrote: > > >> > > >>> 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 > > >>>>>>>>> > > >>>>>>>>> > > >>>>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>> > > >>>>>> > > >>>> > > >>>> > > >>> > > > > > > > >