[mochikit] Re: callLater and IE
All ready, however when I try to submit a ticket I am told: Internal Error: Submission rejected as potential spam (Akismet says content is spam) The patch is: Index: tests/test_Base.js === --- tests/test_Base.js (revision 1312) +++ tests/test_Base.js (working copy) @@ -26,6 +26,9 @@ t.is( bind(boundFunc, undefined, foo)(), self foo, boundFunc partial no self change ); t.is( bind(boundFunc, not_self, foo)(), not self foo, boundFunc partial self change ); +t.is( typeof(bind(alert).im_func.apply), function, true, bind alert worked ); +t.is( typeof(bind(window.print).im_func.apply), function, bind window.print worked ); + // test method not_self = {toString: function () { return not self; } }; self = {toString: function () { return self; } }; Index: MochiKit/Base.js === --- MochiKit/Base.js(revision 1312) +++ MochiKit/Base.js(working copy) @@ -607,7 +607,7 @@ var im_preargs = func.im_preargs; var im_self = func.im_self; var m = MochiKit.Base; -if (typeof(func) == function typeof(func.apply) == undefined) { +if (typeof(func) == object typeof(func.apply) == undefined) { // this is for cases where JavaScript sucks ass and gives you a // really dumb built-in function like alert() that doesn't have // an apply I'm not 100% happy with the test patch however as it tests internal behaviour of bind rather than testing binds' interface, however I don't know how to non-intrusively test that bind will work with alert window.print. On Aug 21, 5:00 pm, Arnar Birgisson [EMAIL PROTECTED] wrote: On 8/21/07, Jonathan Marshall [EMAIL PROTECTED] wrote: Changing that to: if (typeof(func) == object typeof( func.apply) == undefined) { works for me. Good. Would you be able to add some tests using your examples and submit them as well as the fix as a patch? Then we can test it on the various platforms and commit it if everything works. Arnar --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups MochiKit group. To post to this group, send email to mochikit@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/mochikit?hl=en -~--~~~~--~~--~--~---
[mochikit] Re: callLater and IE
On 8/21/07, Jonathan Marshall [EMAIL PROTECTED] wrote: Hi, I'm not sure if this is a bug in Mochikit, or my error. The following do not work in IE 6: script callLater(1, window.print); callLater(2, alert, 'drink beer'); /script yet these do: script function f() { window.print(); } function g() { alert('drink beer'); } callLater(1, f); callLater(2, g); /script Works beautifully in Firefox though.Tried with Mochikit 1.3.1 and a recent dump from SVN. Some of these built-in methods and functions aren't actual JavaScript functions and aren't compatible with Function.prototype.apply, so using MochiKit directly on them may not work. I think there's a workaround for it in MochiKIt that makes it work in Firefox and maybe Safari but I guess that workaround doesn't work properly in IE6. -bob --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups MochiKit group. To post to this group, send email to mochikit@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/mochikit?hl=en -~--~~~~--~~--~--~---
[mochikit] Re: callLater and IE
On 8/21/07, Bob Ippolito [EMAIL PROTECTED] wrote: Some of these built-in methods and functions aren't actual JavaScript functions and aren't compatible with Function.prototype.apply, so using MochiKit directly on them may not work. I think there's a workaround for it in MochiKIt that makes it work in Firefox and maybe Safari but I guess that workaround doesn't work properly in IE6. They are proper functions in Firefox and I believe also in Safari. This is a known problem in IE which doesn't expose the proper Function interface on it's built-ins. There *is* a workaround in MochiKit, applied in Base.bind by wrapping the function in Base._wrapDumbFunction. Maybe the condition that is used to check if that workaround should be applied needs revision. Currently it's if (typeof(func) == function typeof(func.apply) == undefined) { I don't have time atm or the proper debugging tools to test this in IE, but if there are no volunteers I'll have a look sometime. Arnar --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups MochiKit group. To post to this group, send email to mochikit@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/mochikit?hl=en -~--~~~~--~~--~--~---
[mochikit] Re: callLater and IE
On 8/21/07, Arnar Birgisson [EMAIL PROTECTED] wrote: There *is* a workaround in MochiKit, applied in Base.bind by wrapping the function in Base._wrapDumbFunction. Maybe the condition that is used to check if that workaround should be applied needs revision. Currently it's if (typeof(func) == function typeof(func.apply) == undefined) { I don't have time atm or the proper debugging tools to test this in IE, but if there are no volunteers I'll have a look sometime. Arnar Changing that to: if (typeof(func) == object typeof( func.apply) == undefined) { works for me. --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups MochiKit group. To post to this group, send email to mochikit@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/mochikit?hl=en -~--~~~~--~~--~--~---
[mochikit] Re: callLater and IE
On 8/21/07, Jonathan Marshall [EMAIL PROTECTED] wrote: Changing that to: if (typeof(func) == object typeof( func.apply) == undefined) { works for me. Good. Would you be able to add some tests using your examples and submit them as well as the fix as a patch? Then we can test it on the various platforms and commit it if everything works. Arnar --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups MochiKit group. To post to this group, send email to mochikit@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/mochikit?hl=en -~--~~~~--~~--~--~---