Closed Bug 412435 Opened 17 years ago Closed 16 years ago

Syntax error after parsing JavaScript directives in comments

Categories

(Rhino Graveyard :: Compiler, defect, P5)

head
x86
Windows XP

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 397868

People

(Reporter: fenik17, Unassigned)

Details

User-Agent:       Opera/9.25 (Windows NT 5.1; U; ru)
Build Identifier: 1.6R7

Script JSCookMenu.js ( http://jscook.sourceforge.net/JSCookMenu/ ) exist code:

---------------------
// disable iframe masking for IE7
/*@cc_on
	@if (@_jscript_version >= 5.6)
		if (_cmFrameMasking)
		{
			var v = navigator.appVersion;
			var i = v.indexOf ("MSIE ");
			if (i >= 0)
			{
				if (parseInt (navigator.appVersion.substring (i + 5)) >= 7)
					_cmFrameMasking = false;
			}
		}
	@end
@*/

var _cmClicked = false;				// for onClick
---------------------

After parsing line open comment tag with directive (/*@cc_on) is deleted, but closing tag (@*/) wasn't deleted and at next line (var _cmClicked = false;) JavaScriptEngine generate exception "syntax error":


Exception class=[org.mozilla.javascript.EvaluatorException]
com.gargoylesoftware.htmlunit.ScriptException: syntax error (http://localhost:8090/app?digest=b190e8e8797dfda62ef63c45592706e8&service=asset&path=%2FJSCookMenu-mod.js#144)
	at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:557)
	at org.mozilla.javascript.Context.call(Context.java:577)
	at org.mozilla.javascript.Context.call(Context.java:499)
	at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.compile(JavaScriptEngine.java:396)
	at com.gargoylesoftware.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:887)
	at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:792)
	at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:276)
	at com.gargoylesoftware.htmlunit.html.HtmlScript.onAddedToPage(HtmlScript.java:197)
	at com.gargoylesoftware.htmlunit.html.HtmlPage.notifyNodeAdded(HtmlPage.java:1497)
	at com.gargoylesoftware.htmlunit.html.DomNode.appendDomChild(DomNode.java:808)
	at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.startElement(HTMLParser.java:392)
	at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
	at org.cyberneko.html.filters.DefaultFilter.startElement(DefaultFilter.java:179)
	at org.cyberneko.html.filters.NamespaceBinder.startElement(NamespaceBinder.java:286)
	at org.cyberneko.html.HTMLTagBalancer.callStartElement(HTMLTagBalancer.java:1009)
	at org.cyberneko.html.HTMLTagBalancer.startElement(HTMLTagBalancer.java:639)
	at org.cyberneko.html.HTMLScanner$ContentScanner.scanStartElement(HTMLScanner.java:2407)
	at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:1881)
	at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:809)
	at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:478)
	at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:431)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:253)
	at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:116)
	at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:89)
	at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:450)
	at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:359)
	at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:407)
	at net.sourceforge.jwebunit.htmlunit.HtmlUnitDialog.gotoPage(HtmlUnitDialog.java:197)
	at net.sourceforge.jwebunit.junit.WebTester.gotoPage(WebTester.java:2118)
	at org.owllabs.unitest.MyTest.myVoid(MyTest.java:41)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
	at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
	at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
	at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
	at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
	at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
	at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
	at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
	at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)


---
Sorry for my english.

Reproducible: Always

Steps to Reproduce:
1. Add <script type="text/javascript" src="JSCookMenu.js"></script> to html page head.
2. Processing this page by Rhino 1.6R7. For example, used HtmlUnit.
Actual Results:  
exeption "syntax error"
Version: other → head
Will take a lot of setup to reproduce. You might try filing this bug against HTMLUnit so they can look at it more quickly.
Priority: -- → P5
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.