Ok Alex, I change to your proposal and is working ok I think we can close here.
As a bonus, if you finaly work on allow resources in SWC let me know to change the dialogPolyfill from be injected from a CDN to hosted in the MDL SWC Thanks! Carlos 2017-01-21 0:21 GMT+01:00 Alex Harui <aha...@adobe.com>: > OK, I think I get it. > > The code "if (!dialog.showModal)" is a test for a dynamic property being > added, but when dialog is declared as HTMLDialogElement, it assumes the > object has a showModal method. > > IMO, it is a bug that dialog.showModal in an if condition outputs a call > to Language.closure, but really, this sort of test isn't safe across > platforms. You might want to try using "in": > > if (!("showModal" in dialog)) > > -Alex > > On 1/20/17, 2:58 PM, "carlos.rov...@gmail.com on behalf of Carlos Rovira" > <carlos.rov...@gmail.com on behalf of carlos.rov...@codeoscopic.com> > wrote: > > >I send too quickly. I want to ask you if the sentence > > > >*f (!dialog.showModal) {* > > > >not working could be considered a bug, or maybe here the brackets notation > >is correct > > > >btw, I think that without count this issue, all is right now :) > > > > > > > > > >2017-01-20 23:55 GMT+01:00 Carlos Rovira <carlos.rov...@codeoscopic.com>: > > > >> Hi Alex > >> > >> in the code below you can see that at the end dialog.showModal() works > >>now > >> (as well dialog.close()) > >> but > >> > >> *if (!dialog.showModal) {* > >> > >> not works. to make it works I change to : if (!dialog["showModal"]) { > >> > >> > >> > >> org.apache.flex.mdl.Dialog.prototype.showModal = function() { > >> if (!this.lockDialogCreation) { > >> this.lockDialogCreation = true; > >> if (org.apache.flex.mdl.Application.topLevelApplication != null) { > >> org.apache.flex.mdl.Application.topLevelApplication. > >> addElement(this); > >> } > >> if (!org.apache.flex.utils.Language.closure(this.dialog.showModal, > >> this.dialog, 'showModal')) {. *<-- line 88 is not working.* > >> dialogPolyfill.registerDialog(this.dialog); > >> } > >> } > >> this.dialog.showModal(); *<-- This is working right * > >> }; > >> > >> 2017-01-20 22:31 GMT+01:00 Alex Harui <aha...@adobe.com>: > >> > >>> The link appears to show a stack trace. What is the Dialog.js code > >>>around > >>> those line numbers? > >>> > >>> -Alex > >>> > >>> On 1/20/17, 12:09 PM, "carlos.rov...@gmail.com on behalf of Carlos > >>> Rovira" > >>> <carlos.rov...@gmail.com on behalf of carlos.rov...@codeoscopic.com> > >>> wrote: > >>> > >>> >Hi Alex, > >>> > > >>> >I modified as you said: > >>> > > >>> >/** > >>> > * @flexjsignorecoercion > >>>org.apache.flex.core.WrappedHTMLElement > >>> >* @flexjsignorecoercion HTMLDialogElement > >>> > */ > >>> > COMPILE::JS > >>> > override protected function createElement(): > WrappedHTMLElement > >>> > { > >>> > typeNames = "mdl-dialog"; > >>> > > >>> > dialog = document.createElement('dialog') as > >>> >HTMLDialogElement; > >>> >element = dialog as WrappedHTMLElement; > >>> > > >>> > > >>> >Now the error is diferent: > >>> > > >>> >goog.bindNative_ = function(fn, selfObj, var_args) { > >>> > return /** @type {!Function} */ (fn.call.apply(fn.bind, arguments)); > >>> > <-- TypeError: undefined is not an object (evaluating 'fn.call') > >>> >}; > >>> > > >>> > > >>> >See the image : > >>> > > >>> >http://imgur.com/fM9CeL5 > >>> > > >>> > > >>> > > >>> >2017-01-20 18:55 GMT+01:00 Alex Harui <aha...@adobe.com>: > >>> > > >>> >> > >>> >> > >>> >> On 1/20/17, 9:47 AM, "carlos.rov...@gmail.com on behalf of Carlos > >>> >>Rovira" > >>> >> <carlos.rov...@gmail.com on behalf of carlosrov...@apache.org> > >>>wrote: > >>> >> > >>> >> >sorry in > >>> >> > > >>> >> >http://caniuse.com/#feat=dialog > >>> >> > > >>> >> ><http://caniuse.com/#feat=dialog>Safari 10 is in red and so "not > >>> >> >supported" > >>> >> > > >>> >> >And for that reason we are forced to use brackets notation and > >>> >>HTMLElement > >>> >> >right? > >>> >> > >>> >> I still don't understand why you need brackets. > >>> >> > >>> >> FWIW, you can use: > >>> >> @flexjsignorecoercion HTMLDialogElement > >>> >> > >>> >> This will get rid of the Language.as call, but I don't know what > >>> >> createElement will return. > >>> >> > >>> >> I thought you said you somehow got this to work on Safari and FF but > >>> >> couldn't call the show method without ["show"]. I still don't > >>> >>understand > >>> >> what the dialog variable is pointing to if you couldn't get past the > >>> >> createElement call. But if Safari returns something that is an > >>> >> HTMLElement with a show method, you should be able to call > >>> dialog.show() > >>> >> if you skip the Language.as check by using @flexjsignorecoercion > >>> >> > >>> >> HTH, > >>> >> -Alex > >>> >> > >>> >> > >>> >> > >>> > > >>> > > >>> >-- > >>> > > >>> >Carlos Rovira > >>> >Director General > >>> >M: +34 607 22 60 05 > >>> >http://www.codeoscopic.com > >>> >http://www.avant2.es > >>> > > >>> >Este mensaje se dirige exclusivamente a su destinatario y puede > >>>contener > >>> >información privilegiada o confidencial. Si ha recibido este mensaje > >>>por > >>> >error, le rogamos que nos lo comunique inmediatamente por esta misma > >>>vía > >>> y > >>> >proceda a su destrucción. > >>> > > >>> >De la vigente Ley Orgánica de Protección de Datos (15/1999), le > >>> >comunicamos > >>> >que sus datos forman parte de un fichero cuyo responsable es > >>>CODEOSCOPIC > >>> >S.A. La finalidad de dicho tratamiento es facilitar la prestación del > >>> >servicio o información solicitados, teniendo usted derecho de acceso, > >>> >rectificación, cancelación y oposición de sus datos dirigiéndose a > >>> >nuestras > >>> >oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la > >>>documentación > >>> >necesaria. > >>> > >>> > >> > >> > >> -- > >> > >> Carlos Rovira > >> Director General > >> M: +34 607 22 60 05 <607%2022%2060%2005> > >> http://www.codeoscopic.com > >> http://www.avant2.es > >> > >> Este mensaje se dirige exclusivamente a su destinatario y puede contener > >> información privilegiada o confidencial. Si ha recibido este mensaje por > >> error, le rogamos que nos lo comunique inmediatamente por esta misma > >>vía y > >> proceda a su destrucción. > >> > >> De la vigente Ley Orgánica de Protección de Datos (15/1999), le > >> comunicamos que sus datos forman parte de un fichero cuyo responsable es > >> CODEOSCOPIC S.A. La finalidad de dicho tratamiento es facilitar la > >> prestación del servicio o información solicitados, teniendo usted > >>derecho > >> de acceso, rectificación, cancelación y oposición de sus datos > >>dirigiéndose > >> a nuestras oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la > >> documentación necesaria. > >> > >> > > > > > >-- > > > >Carlos Rovira > >Director General > >M: +34 607 22 60 05 > >http://www.codeoscopic.com > >http://www.avant2.es > > > >Este mensaje se dirige exclusivamente a su destinatario y puede contener > >información privilegiada o confidencial. Si ha recibido este mensaje por > >error, le rogamos que nos lo comunique inmediatamente por esta misma vía y > >proceda a su destrucción. > > > >De la vigente Ley Orgánica de Protección de Datos (15/1999), le > >comunicamos > >que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC > >S.A. La finalidad de dicho tratamiento es facilitar la prestación del > >servicio o información solicitados, teniendo usted derecho de acceso, > >rectificación, cancelación y oposición de sus datos dirigiéndose a > >nuestras > >oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación > >necesaria. > > -- Carlos Rovira Director General M: +34 607 22 60 05 http://www.codeoscopic.com http://www.avant2.es Este mensaje se dirige exclusivamente a su destinatario y puede contener información privilegiada o confidencial. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción. De la vigente Ley Orgánica de Protección de Datos (15/1999), le comunicamos que sus datos forman parte de un fichero cuyo responsable es CODEOSCOPIC S.A. La finalidad de dicho tratamiento es facilitar la prestación del servicio o información solicitados, teniendo usted derecho de acceso, rectificación, cancelación y oposición de sus datos dirigiéndose a nuestras oficinas c/ Paseo de la Habana 9-11, 28036, Madrid con la documentación necesaria.