public void testParseObjectLiteral3() { environment.setLanguageVersion(Context.VERSION_1_8); environment.setReservedKeywordAsIdentifier(true); parse("var {get} = {get:1};"); environment.setReservedKeywordAsIdentifier(false); parse("var {get} = {get:1};"); expectParseErrors("var {get} = {if:1};", new String[] {"invalid property id"}); }
public void testParseObjectLiteral2() { // keywords, fail environment.setReservedKeywordAsIdentifier(false); expectParseErrors("({function:1});", new String[] {"invalid property id"}); environment.setReservedKeywordAsIdentifier(true); // keywords ok parse("({function:1});"); }
public void testParseKeywordPropertyAccess() { environment.setReservedKeywordAsIdentifier(true); // keywords ok parse("({function:1}).function;"); // reserved words ok. parse("({import:1}).import;"); }
public void testParseObjectLiteral1() { environment.setReservedKeywordAsIdentifier(true); parse("({a:1});"); parse("({'a':1});"); parse("({0:1});"); // property getter and setter definitions accept string and number parse("({get a() {return 1}});"); parse("({get 'a'() {return 1}});"); parse("({get 0() {return 1}});"); parse("({set a(a) {return 1}});"); parse("({set 'a'(a) {return 1}});"); parse("({set 0(a) {return 1}});"); // keywords ok parse("({function:1});"); // reserved words ok parse("({float:1});"); }
@Override public void filter(Reader reader, Writer writer) { try { CompilerEnvirons config = new CompilerEnvirons(); // 'float' is otherwise considered a reserved keyword (usage: element.style.float = 'left'). config.setReservedKeywordAsIdentifier(true); // Force the parser to build the parent scope chain. config.setIdeMode(true); Parser parser = new Parser(config); AstRoot root = parser.parse(reader, null, 0); // Filter the AST. for (NodeVisitor filter : filters) { root.visit(filter); } // Back to source. writer.write(root.toSource()); } catch (IOException e) { LOGGER.error("Failed to rewrite JavaScript code.", e); } }