Closed
Bug 280546
Opened 20 years ago
Closed 19 years ago
JavaScript1.2 - foo.replace("?","") dies with "invalid quantifier"
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: Erb, Unassigned)
References
()
Details
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Build Identifier: The URL produces a popup window with the following source: <html> <head> <title>eTrust SSO for Web</title> <SCRIPT LANGUAGE="JavaScript1.2"> <!-- window.onload = loadFrame; function loadFrame() { var loginURL = "/?SSOCMD=SSOLOGIN"; var query = top.location.search; if ( query ) { loginURL = query.replace("SSCMD", "SSOCMD" ); loginURL = loginURL.replace("SSCMD", "SSOCMD" ); loginURL = loginURL.replace("?query=", "?"); } top.data.location.replace(loginURL); } //--> </SCRIPT> </head> <frameset noresize framespacing="0" frameborder="0" border="false" cols="500" rows="360,0"> <frame name="data" noresize scrolling="no" marginwidth="0" marginheight="0" src="data.html"> <body> </body> </frameset> </html> Note the tricky way the URL is replaced. This works on IE but not Firefox. Reproducible: Always Steps to Reproduce: See Details Actual Results: Only the page background is visible. Expected Results: New URL is navigated to in popup window, showing a form.
Sorry, forgot the Firefox version: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Version: unspecified → 1.0 Branch
Comment 2•20 years ago
|
||
Try disabling the popup blocking, otherwise popups in load events aren't going to appear.
Comment 4•20 years ago
|
||
I suspect that will turn out to be an intentional feature of JavaScript1.2, which was a rather different beast than most JavaScripts. While <script language="JavaScript"> alert("f?oo".replace('?oo','ee')); </script> alerts "Fee", <script language="JavaScript1.2"> alert("f?oo".replace('?oo','ee')); </script> dies with an "Error: invalid quantifier ?" in the JS Console.
Assignee: firefox → general
Component: General → JavaScript Engine
Product: Firefox → Core
QA Contact: general → pschwartau
Summary: tricky JavaScript replacement of current page URL does not work → JavaScript1.2 - foo.replace("?","") dies with "invalid quantifier"
Version: 1.0 Branch → Trunk
It may be unavoidable to have to say that Microsoft sets the standard. I think that's pretty much the reason behind most pages that work "wrong" in Mozilla/Firefox.
Comment 6•20 years ago
|
||
This error occurs for JavaScript 1.1-1.4, but not in JavaScript 1.5. The ECMA 262 1 and 2 Specifications had the first argument as a regular expression however ECMA 262 3 has the first argument as either a string or a regular expression. In JS 1.1 - 1.4, We convert the argument to a regular expression but in JS 1.5 we treat it as a string. Another example where older JS version emulation bites us.
Comment 7•20 years ago
|
||
See http://bclary.com/2004/09/26/boot-camp-javascript#String.prototype.replace
Comment 8•19 years ago
|
||
Fixed for 1.8b2 by checkin for bug 255895. /be
Status: UNCONFIRMED → RESOLVED
Closed: 19 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•