Subj : rhino bug with String.prototype.replace(re, func) To : netscape.public.mozilla.jseng From : mda@discerning.com (Mark D. Anderson) Date : Mon Aug 25 2003 03:38 pm In Rhino 1_5R5pre, var re = /(\s)?/g; var s = "foo"; s.replace(re, function() {return ''}); results in the stack trace below. it works in SpiderMonkey. of course the code above is stupid, but it is a simplified version of non-stupid but more complicated code that revealed the bug to me. -mda Exception in thread "main" java.lang.NullPointerException at org.mozilla.javascript.regexp.ReplaceData.findReplen(RegExpImpl.java:486) at org.mozilla.javascript.regexp.ReplaceData.doGlobal(RegExpImpl.java:361) at org.mozilla.javascript.regexp.RegExpImpl.matchOrReplace(RegExpImpl.java:186) at org.mozilla.javascript.regexp.RegExpImpl.replace(RegExpImpl.java:105) at org.mozilla.javascript.NativeString.execMethod(NativeString.java:244) at org.mozilla.javascript.IdFunction.call(IdFunction.java:78) at org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1195) at org.mozilla.javascript.gen.c2.call(/Users/mda/Sites/burstproject/turds/quicktest.js:3) at org.mozilla.javascript.gen.c2.exec(/Users/mda/Sites/burstproject/turds/quicktest.js) at org.mozilla.javascript.Context.evaluateReader(Context.java:806) at org.mozilla.javascript.tools.shell.Main.evaluateReader(Main.java:363) at org.mozilla.javascript.tools.shell.Main.processFileSecure(Main.java:354) at org.mozilla.javascript.tools.shell.Main.processFile(Main.java:291) at org.mozilla.javascript.tools.shell.Main.processSource(Main.java:283) at org.mozilla.javascript.tools.shell.Main.exec(Main.java:103) at org.mozilla.javascript.tools.shell.Main.main(Main.java:76) .