Issue #730 Not working without ActiveX fix on Windows

Ocal escapes for strings in AS1/2.
Invalid escape in string does not generate exception (handle as \\ in AS1/2, empty string in AS3).
This commit is contained in:
Jindra Petřík
2014-11-30 13:03:02 +01:00
parent d08025dbd8
commit e27eaed6ed
5 changed files with 1599 additions and 1581 deletions

View File

@@ -622,7 +622,7 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
/* escape sequences */
\\. { throw new AVM2ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); }
\\. { /* ignore illegal character escape */ }
{LineTerminator} { yybegin(YYINITIAL); yyline++;}
}
@@ -651,7 +651,7 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
/* escape sequences */
\\. { throw new AVM2ParseException("Illegal escape sequence \""+ yytext() +"\"", yyline + 1); }
\\. { /* ignore illegal character escape */ }
{LineTerminator} { yybegin(YYINITIAL); yyline++;}
}

View File

@@ -419,10 +419,12 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
string.append(val); }
\\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16);
string.append(val); }
\\{OctDigit}{3} { char val = (char) Integer.parseInt(yytext().substring(1), 8);
string.append(val); }
/* escape sequences */
\\. { throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); }
\\. { string.append('\\'); /*illegal escape sequence*/ }
{LineTerminator} { yybegin(YYINITIAL); yyline++;}
}
@@ -452,7 +454,7 @@ OIdentifierCharacter = [^\r\n\u00A7\\]
/* escape sequences */
\\. { throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); }
\\. { string.append('\\'); /*illegal escape sequence*/ }
{LineTerminator} { yybegin(YYINITIAL); yyline++;}
}

View File

@@ -135,7 +135,11 @@ public class FlashPlayerPanel extends Panel implements Closeable, MediaDisplay {
if (!Platform.isWindows()) {
throw new FlashUnsupportedException();
}
flash = ActiveX.createObject(ShockwaveFlash.class, this);
try {
flash = ActiveX.createObject(ShockwaveFlash.class, this);
} catch (ActiveXException ex) {
throw new FlashUnsupportedException();
}
flash.setAllowScriptAccess("always");
flash.setAllowNetworking("all");
flash.addFlashCallListener(new ActiveXEventListener() {