Closed
Bug 351991
Opened 18 years ago
Closed 5 years ago
Rhino parser accepts XML literals containing multiple nodes
Categories
(Rhino Graveyard :: E4X, defect, P4)
Tracking
(Not tracked)
RESOLVED
INACTIVE
People
(Reporter: sayrer, Unassigned)
References
Details
Rhino 1.6r3 should not accept XML literals that would for XMLLists. see bug 351371 for details. 5 test cases: 1.) var x = function(){ var x = <?foo bar?><y>asdf</y>; } 2.) var x = function(){ var x = <?foo bar?><y>asdf</y><?foo bar?>; } 3.) var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y>; } 4.) var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y><?foo bar?>; } 5.) var x = function(){ var x = <y><?foo bar?>asdf</y>; } Spidermonkey trunk ---------------------------------- js> var x = function(){ var x = <?foo bar?><y>asdf</y>; } typein:1: SyntaxError: unterminated regular expression literal: typein:1: var x = function(){ var x = <?foo bar?><y>asdf</y>; } typein:1: ...............................................^ js> var x = function(){ var x = <?foo bar?><y>asdf</y><?foo bar?>; } typein:2: SyntaxError: unterminated regular expression literal: typein:2: var x = function(){ var x = <?foo bar?><y>asdf</y><?foo bar?>; } typein:2: ...............................................^ js> var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y>; } typein:3: SyntaxError: missing ; before statement: typein:3: var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y>; } typein:3: .....................................................^ js> var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y><?foo bar?>; } typein:4: SyntaxError: missing ; before statement: typein:4: var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y><?foo bar?>; } typein:4: .....................................................^ js> var x = function(){ var x = <y><?foo bar?>asdf</y>; } js> x function () { var x = <y><?foo bar?>asdf</y>; } js> Rhino 1.6r3 ---------------------------- js> var x = function(){ var x = <?foo bar?><y>asdf</y>; } js> x function () { var x = <?foo bar?><y>asdf</y>; } js> var x = function(){ var x = <?foo bar?><y>asdf</y><?foo bar?>; } js: "<stdin>", line 6: syntax error js: var x = function(){ var x = <?foo bar?><y>asdf</y><?foo bar?>; } js: ...................................................^ js: "<stdin>", line 6: Compilation produced 1 syntax errors. js> var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y>; } js> x function () { var x = <?foo bar?><y><?foo bar?>asdf</y>; } js> var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y><?foo bar?>; } js: "<stdin>", line 9: syntax error js: var x = function(){ var x = <?foo bar?><y><?foo bar?>asdf</y><?foo bar?>; } js: ..............................................................^ js: "<stdin>", line 9: Compilation produced 1 syntax errors. js> var x = function(){ var x = <y><?foo bar?>asdf</y>; } js> x function () { var x = <y><?foo bar?>asdf</y>; }
Comment 1•17 years ago
|
||
The parser doesn't correctly enforce the rules given in ECMA357 11.1.4 and 8.3. According to 11.1.4, an XML literal must match an element OR an XMLMarkup (which according to 8.3 is a comment or PI or CDATA). We allow XML literals to also match a series of these. Adding bug 368520 (parser) as a blocker for this bug.
Depends on: 368520
Updated•17 years ago
|
Summary: e4x XML literal parsing is too lax → Rhino parser accepts XML literals containing multiple nodes
Updated•17 years ago
|
Priority: -- → P4
Comment 2•5 years ago
|
||
Closing. Bug management is now done here:
https://github.com/mozilla/rhino
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INACTIVE
You need to log in
before you can comment on or make changes to this bug.
Description
•