E4X literals should be acceptable values for sharp variables. r=jwalden

This commit is contained in:
Rasmus Jensen 2010-05-14 21:52:03 -07:00
parent fb7ceb4c78
commit 333acce4c4
2 changed files with 9 additions and 14 deletions

View File

@ -8071,16 +8071,11 @@ Parser::primaryExpr(TokenKind tt, JSBool afterDot)
return NULL;
if (PN_TYPE(pn->pn_kid) == TOK_USESHARP ||
PN_TYPE(pn->pn_kid) == TOK_DEFSHARP ||
#if JS_HAS_XML_SUPPORT
PN_TYPE(pn->pn_kid) == TOK_XMLCOMMENT ||
PN_TYPE(pn->pn_kid) == TOK_XMLCDATA ||
PN_TYPE(pn->pn_kid) == TOK_XMLPTAGC ||
PN_TYPE(pn->pn_kid) == TOK_XMLELEM ||
#endif
PN_TYPE(pn->pn_kid) == TOK_STRING ||
PN_TYPE(pn->pn_kid) == TOK_NUMBER ||
PN_TYPE(pn->pn_kid) == TOK_PRIMARY) {
reportErrorNumber(pn->pn_kid, JSREPORT_ERROR, JSMSG_BAD_SHARP_VAR_DEF);
ReportCompileErrorNumber(context, &tokenStream, pn->pn_kid, JSREPORT_ERROR,
JSMSG_BAD_SHARP_VAR_DEF);
return NULL;
}
if (!tc->ensureSharpSlots())

View File

@ -9,7 +9,7 @@
var gTestfile = 'regress-335051.js';
//-----------------------------------------------------------------------------
var BUGNUMBER = 335051;
var summary = 'E4X literals should be acceptable values for sharp variables';
var summary = '';
var actual = '';
var expect = '';
@ -47,12 +47,12 @@ function test()
testSyntax("#1=function() { }", true);
testSyntax("#1=(new Date())", true);
testSyntax("#1=<a/>", false);
testSyntax("#1=<!-- -->", false);
testSyntax("#1=<a>b</a>", false);
testSyntax("[#1=<a>b</a>, #1#]", false);
testSyntax("#1=(<a/>)", false);
testSyntax("#1=(<![CDATA[foo]]>)", false);
testSyntax("#1=<a/>", true);
testSyntax("#1=<!-- -->", true);
testSyntax("#1=<a>b</a>", true);
testSyntax("[#1=<a>b</a>, #1#]", true);
testSyntax("#1=(<a/>)", true);
testSyntax("#1=(<![CDATA[foo]]>)", true);
testSyntax("#1=123", false);
testSyntax("#1='foo'", false);