-
10 Jan 2013 2:17 PM #21
Try to write
line directly into ext class, after the following lines:PHP Code:try{}catch(e){}
It helped me.PHP Code:callOverrideParent = function () { // line 36 in ext-all-dev.js (4.1.1)
callParent: function(args) { // line 5885
callParent: function(args) { // line 6179
-
10 Jan 2013 3:21 PM #22
The reason it's not reproducible is because it happens during some JIT compiling, so it's not really something we can "fix", since the symptom happens almost at random. The reason the try/catch works is because methods with try catch blocks don't get compiled.
The FF bug is here: https://bugzilla.mozilla.org/show_bug.cgi?id=818023Evan Trimboli
Sencha Developer
Twitter - @evantrimboli
Don't be afraid of the source code!
-
11 Jan 2013 4:57 PM #23
-
11 Jan 2013 5:00 PM #24
Try/catch temporary patch
Try/catch temporary patch
The Try/catch temporary patch works for us as well.
Who needs to release a fix for the core issue? Mozilla or Sencha?
-
11 Jan 2013 6:05 PM #25
Ideally Mozilla.
Take a look at the Bugzilla report evant mentioned. It looks like Mozilla are still debating whether or not to include a fix in 18.0.1 dependent on 'user feedback'. Anyone who's keen to see this fixed quickly might want to voice their support to Mozilla.
-
12 Jan 2013 5:03 AM #26
-
12 Jan 2013 6:14 AM #27
We are also starting to get the problem reported to us. Seems like the auto update in Firefox can take a few days to happen.
Is there any chance of a temporary fix for the compressed files, maybe some global place the try catch can be added?
-
12 Jan 2013 7:38 AM #28
I'd asked for further information about integration state of the patch in the next releases. Unfortunately, the current patch has raised a regression test last night and therefor an automatic pull of the patch.
I give you a quote about the current Mozilla issue 818023:
They will track this for the next release if possible. This means the fix for 21 would be applied for 18, 19 and 20.
The change has since been backed out for test regressions (it will be in today's Nightly, but not after that, once the backout merges in later today), however you can test a build with it at:
Win32:http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-central-win32/1357912691/firefox-21.0a1.en-US.win32.zip
OSX:http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-central-macosx64/1357912691/firefox-21.0a1.en-US.mac.dmg
Linux32:http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-central-linux/1357912691/firefox-21.0a1.en-US.linux-i686.tar.bz2
Linux64:http://ftp.mozilla.org/pub/mozilla.o...x86_64.tar.bz2
-
12 Jan 2013 7:54 AM #29
Create and run the following php code:
PHP Code:<?php
$fn_in = "ext-all.js";
$fn_out ="ext-all2.js";
$f = file_get_contents($fn_in);
$f = str_replace('d=function(){var i=d.caller.caller;r', 'd=function(){try{}catch(e){};var i=d.caller.caller;r', $f);
$f = str_replace('callParent:function(d){var e;r', 'callParent:function(d){var e;try{}catch(e){};r', $f);
$f = str_replace('callParent:function(e){var g,d', 'callParent:function(e){try{}catch(e){};var g,d', $f);
file_put_contents($fn_out, $f);
print "DONE";
-
13 Jan 2013 11:28 PM #30
You can also implement it like this
This way you don't need to change the ExtJs Files...Code:Ext.onReady(function(){ if (Ext.firefoxVersion >= 18) { var noArgs = []; Ext.override(Ext.Base, { callParent : function(args) { var method, superMethod = (method = this.callParent.caller) && (method.$previous || ((method = method.$owner ? method : method.caller) && method.$owner.superclass[method.$name])); // Workarround for Firefox 18. I don't know why this works, but it does. Perhaps functions wich have // a try-catch block are handled differently try { } catch (e) { } return superMethod.apply(this, args || noArgs); } }); } });



Reply With Quote