Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Unified Diff: pkg/js_ast/lib/src/builder.dart

Issue 2748103010: Run dartfmt on js_ast (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/js_ast/lib/src/characters.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/js_ast/lib/src/builder.dart
diff --git a/pkg/js_ast/lib/src/builder.dart b/pkg/js_ast/lib/src/builder.dart
index 5d680f5c9ecb97db7557d8de0417161922e31cb2..ff294470abe5f45ce57f93b01a0bd5024a977eed 100644
--- a/pkg/js_ast/lib/src/builder.dart
+++ b/pkg/js_ast/lib/src/builder.dart
@@ -7,7 +7,6 @@
part of js_ast;
-
/**
* Global template manager. We should aim to have a fixed number of
* templates. This implies that we do not use js('xxx') to parse text that is
@@ -18,7 +17,6 @@ part of js_ast;
*/
TemplateManager templateManager = new TemplateManager();
-
/**
[js] is a singleton instace of JsBuilder. JsBuilder is a set of conveniences
@@ -187,7 +185,6 @@ What is not implemented:
*/
const JsBuilder js = const JsBuilder();
-
class JsBuilder {
const JsBuilder();
@@ -271,8 +268,8 @@ class JsBuilder {
Template uncachedExpressionTemplate(String source) {
MiniJsParser parser = new MiniJsParser(source);
Expression expression = parser.expression();
- return new Template(
- source, expression, isExpression: true, forceCopy: false);
+ return new Template(source, expression,
+ isExpression: true, forceCopy: false);
}
/**
@@ -281,8 +278,8 @@ class JsBuilder {
Template uncachedStatementTemplate(String source) {
MiniJsParser parser = new MiniJsParser(source);
Statement statement = parser.statement();
- return new Template(
- source, statement, isExpression: false, forceCopy: false);
+ return new Template(source, statement,
+ isExpression: false, forceCopy: false);
}
/**
@@ -300,19 +297,26 @@ class JsBuilder {
/// Creates a literal js string from [value].
LiteralString _legacyEscapedString(String value) {
- // Start by escaping the backslashes.
+ // Start by escaping the backslashes.
String escaped = value.replaceAll('\\', '\\\\');
// Do not escape unicode characters and ' because they are allowed in the
// string literal anyway.
escaped = escaped.replaceAllMapped(new RegExp('\n|"|\b|\t|\v|\r'), (match) {
switch (match.group(0)) {
- case "\n" : return r"\n";
- case "\"" : return r'\"';
- case "\b" : return r"\b";
- case "\t" : return r"\t";
- case "\f" : return r"\f";
- case "\r" : return r"\r";
- case "\v" : return r"\v";
+ case "\n":
+ return r"\n";
+ case "\"":
+ return r'\"';
+ case "\b":
+ return r"\b";
+ case "\t":
+ return r"\t";
+ case "\f":
+ return r"\f";
+ case "\r":
+ return r"\r";
+ case "\v":
+ return r"\v";
}
});
LiteralString result = string(escaped);
@@ -324,7 +328,7 @@ class JsBuilder {
/// Creates a literal js string from [value].
LiteralString escapedString(String value,
- {bool utf8: false, bool ascii: false}) {
+ {bool utf8: false, bool ascii: false}) {
if (utf8 == false && ascii == false) return _legacyEscapedString(value);
if (utf8 && ascii) throw new ArgumentError('Cannot be both UTF8 and ASCII');
@@ -340,12 +344,16 @@ class JsBuilder {
++singleQuotes;
} else if (rune == charCodes.$DQ) {
++doubleQuotes;
- } else if (rune == charCodes.$LF || rune == charCodes.$CR ||
- rune == charCodes.$LS || rune == charCodes.$PS) {
+ } else if (rune == charCodes.$LF ||
+ rune == charCodes.$CR ||
+ rune == charCodes.$LS ||
+ rune == charCodes.$PS) {
// Line terminators.
++otherEscapes;
- } else if (rune == charCodes.$BS || rune == charCodes.$TAB ||
- rune == charCodes.$VTAB || rune == charCodes.$FF) {
+ } else if (rune == charCodes.$BS ||
+ rune == charCodes.$TAB ||
+ rune == charCodes.$VTAB ||
+ rune == charCodes.$FF) {
++otherEscapes;
} else if (_isUnpairedSurrogate(rune)) {
++unpairedSurrogates;
@@ -408,15 +416,24 @@ class JsBuilder {
static String _irregularEscape(int code, bool useSingleQuotes) {
switch (code) {
- case charCodes.$SQ: return useSingleQuotes ? r"\'" : r"'";
- case charCodes.$DQ: return useSingleQuotes ? r'"' : r'\"';
- case charCodes.$BACKSLASH: return r'\\';
- case charCodes.$BS: return r'\b';
- case charCodes.$TAB: return r'\t';
- case charCodes.$LF: return r'\n';
- case charCodes.$VTAB: return r'\v';
- case charCodes.$FF: return r'\f';
- case charCodes.$CR: return r'\r';
+ case charCodes.$SQ:
+ return useSingleQuotes ? r"\'" : r"'";
+ case charCodes.$DQ:
+ return useSingleQuotes ? r'"' : r'\"';
+ case charCodes.$BACKSLASH:
+ return r'\\';
+ case charCodes.$BS:
+ return r'\b';
+ case charCodes.$TAB:
+ return r'\t';
+ case charCodes.$LF:
+ return r'\n';
+ case charCodes.$VTAB:
+ return r'\v';
+ case charCodes.$FF:
+ return r'\f';
+ case charCodes.$CR:
+ return r'\r';
}
return null;
}
@@ -435,13 +452,13 @@ class JsBuilder {
LiteralString stringPart(String value) => new LiteralString(value);
StringConcatenation concatenateStrings(Iterable<Literal> parts,
- {addQuotes: false}) {
+ {addQuotes: false}) {
List<Literal> _parts;
if (addQuotes) {
Literal quote = stringPart('"');
_parts = <Literal>[quote]
- ..addAll(parts)
- ..add(quote);
+ ..addAll(parts)
+ ..add(quote);
} else {
_parts = new List.from(parts, growable: false);
}
@@ -472,9 +489,8 @@ class JsBuilder {
Comment comment(String text) => new Comment(text);
- Call propertyCall(Expression receiver,
- Expression fieldName,
- List<Expression> arguments) {
+ Call propertyCall(
+ Expression receiver, Expression fieldName, List<Expression> arguments) {
return new Call(new PropertyAccess(receiver, fieldName), arguments);
}
@@ -491,29 +507,31 @@ LiteralString string(String value) => js.string(value);
LiteralString quoteName(Name name, {allowNull: false}) {
return js.quoteName(name, allowNull: allowNull);
}
+
LiteralString stringPart(String value) => js.stringPart(value);
Iterable<Literal> joinLiterals(Iterable<Literal> list, Literal separator) {
return js.joinLiterals(list, separator);
}
+
StringConcatenation concatenateStrings(Iterable<Literal> parts,
- {addQuotes: false}) {
+ {addQuotes: false}) {
return js.concatenateStrings(parts, addQuotes: addQuotes);
}
LiteralNumber number(num value) => js.number(value);
ArrayInitializer numArray(Iterable<int> list) => js.numArray(list);
ArrayInitializer stringArray(Iterable<String> list) => js.stringArray(list);
-Call propertyCall(Expression receiver,
- Expression fieldName,
- List<Expression> arguments) {
+Call propertyCall(
+ Expression receiver, Expression fieldName, List<Expression> arguments) {
return js.propertyCall(receiver, fieldName, arguments);
}
+
ObjectInitializer objectLiteral(Map<String, Expression> map) {
return js.objectLiteral(map);
}
class MiniJsParserError {
- MiniJsParserError(this.parser, this.message) { }
+ MiniJsParserError(this.parser, this.message) {}
final MiniJsParser parser;
final String message;
@@ -575,7 +593,7 @@ class MiniJsParser {
String lastToken = null;
int lastPosition = 0;
int position = 0;
- bool skippedNewline = false; // skipped newline in last getToken?
+ bool skippedNewline = false; // skipped newline in last getToken?
final String src;
final List<InterpolatedNode> interpolatedValues = <InterpolatedNode>[];
@@ -610,49 +628,70 @@ class MiniJsParser {
static String categoryToString(int cat) {
switch (cat) {
- case NONE: return "NONE";
- case ALPHA: return "ALPHA";
- case NUMERIC: return "NUMERIC";
- case SYMBOL: return "SYMBOL";
- case ASSIGNMENT: return "ASSIGNMENT";
- case DOT: return "DOT";
- case LPAREN: return "LPAREN";
- case RPAREN: return "RPAREN";
- case LBRACE: return "LBRACE";
- case RBRACE: return "RBRACE";
- case LSQUARE: return "LSQUARE";
- case RSQUARE: return "RSQUARE";
- case STRING: return "STRING";
- case COMMA: return "COMMA";
- case QUERY: return "QUERY";
- case COLON: return "COLON";
- case SEMICOLON: return "SEMICOLON";
- case HASH: return "HASH";
- case WHITESPACE: return "WHITESPACE";
- case OTHER: return "OTHER";
+ case NONE:
+ return "NONE";
+ case ALPHA:
+ return "ALPHA";
+ case NUMERIC:
+ return "NUMERIC";
+ case SYMBOL:
+ return "SYMBOL";
+ case ASSIGNMENT:
+ return "ASSIGNMENT";
+ case DOT:
+ return "DOT";
+ case LPAREN:
+ return "LPAREN";
+ case RPAREN:
+ return "RPAREN";
+ case LBRACE:
+ return "LBRACE";
+ case RBRACE:
+ return "RBRACE";
+ case LSQUARE:
+ return "LSQUARE";
+ case RSQUARE:
+ return "RSQUARE";
+ case STRING:
+ return "STRING";
+ case COMMA:
+ return "COMMA";
+ case QUERY:
+ return "QUERY";
+ case COLON:
+ return "COLON";
+ case SEMICOLON:
+ return "SEMICOLON";
+ case HASH:
+ return "HASH";
+ case WHITESPACE:
+ return "WHITESPACE";
+ case OTHER:
+ return "OTHER";
}
return "Unknown: $cat";
}
static const CATEGORIES = const <int>[
- OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, // 0-7
- OTHER, WHITESPACE, WHITESPACE, OTHER, OTHER, WHITESPACE, // 8-13
- OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, // 14-21
- OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, // 22-29
- OTHER, OTHER, WHITESPACE, // 30-32
- SYMBOL, OTHER, HASH, ALPHA, SYMBOL, SYMBOL, OTHER, // !"#$%&´
- LPAREN, RPAREN, SYMBOL, SYMBOL, COMMA, SYMBOL, DOT, SYMBOL, // ()*+,-./
- NUMERIC, NUMERIC, NUMERIC, NUMERIC, NUMERIC, // 01234
- NUMERIC, NUMERIC, NUMERIC, NUMERIC, NUMERIC, // 56789
- COLON, SEMICOLON, SYMBOL, SYMBOL, SYMBOL, QUERY, OTHER, // :;<=>?@
- ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // ABCDEFGH
- ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // IJKLMNOP
- ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // QRSTUVWX
- ALPHA, ALPHA, LSQUARE, OTHER, RSQUARE, SYMBOL, ALPHA, OTHER, // YZ[\]^_'
- ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // abcdefgh
- ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // ijklmnop
- ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // qrstuvwx
- ALPHA, ALPHA, LBRACE, SYMBOL, RBRACE, SYMBOL]; // yz{|}~
+ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, // 0-7
+ OTHER, WHITESPACE, WHITESPACE, OTHER, OTHER, WHITESPACE, // 8-13
+ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, // 14-21
+ OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, OTHER, // 22-29
+ OTHER, OTHER, WHITESPACE, // 30-32
+ SYMBOL, OTHER, HASH, ALPHA, SYMBOL, SYMBOL, OTHER, // !"#$%&´
+ LPAREN, RPAREN, SYMBOL, SYMBOL, COMMA, SYMBOL, DOT, SYMBOL, // ()*+,-./
+ NUMERIC, NUMERIC, NUMERIC, NUMERIC, NUMERIC, // 01234
+ NUMERIC, NUMERIC, NUMERIC, NUMERIC, NUMERIC, // 56789
+ COLON, SEMICOLON, SYMBOL, SYMBOL, SYMBOL, QUERY, OTHER, // :;<=>?@
+ ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // ABCDEFGH
+ ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // IJKLMNOP
+ ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // QRSTUVWX
+ ALPHA, ALPHA, LSQUARE, OTHER, RSQUARE, SYMBOL, ALPHA, OTHER, // YZ[\]^_'
+ ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // abcdefgh
+ ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // ijklmnop
+ ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, // qrstuvwx
+ ALPHA, ALPHA, LBRACE, SYMBOL, RBRACE, SYMBOL
+ ]; // yz{|}~
// This must be a >= the highest precedence number handled by parseBinary.
static var HIGHEST_PARSE_BINARY_PRECEDENCE = 16;
@@ -660,22 +699,54 @@ class MiniJsParser {
// From https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Operator_Precedence
static final BINARY_PRECEDENCE = {
- '+=': 17, '-=': 17, '*=': 17, '/=': 17, '%=': 17, '^=': 17, '|=': 17,
- '&=': 17, '<<=': 17, '>>=': 17, '>>>=': 17, '=': 17,
- '||': 14,
- '&&': 13,
- '|': 12,
- '^': 11,
- '&': 10,
- '!=': 9, '==': 9, '!==': 9, '===': 9,
- '<': 8, '<=': 8, '>=': 8, '>': 8, 'in': 8, 'instanceof': 8,
- '<<': 7, '>>': 7, '>>>': 7,
- '+': 6, '-': 6,
- '*': 5, '/': 5, '%': 5
+ '+=': 17,
+ '-=': 17,
+ '*=': 17,
+ '/=': 17,
+ '%=': 17,
+ '^=': 17,
+ '|=': 17,
+ '&=': 17,
+ '<<=': 17,
+ '>>=': 17,
+ '>>>=': 17,
+ '=': 17,
+ '||': 14,
+ '&&': 13,
+ '|': 12,
+ '^': 11,
+ '&': 10,
+ '!=': 9,
+ '==': 9,
+ '!==': 9,
+ '===': 9,
+ '<': 8,
+ '<=': 8,
+ '>=': 8,
+ '>': 8,
+ 'in': 8,
+ 'instanceof': 8,
+ '<<': 7,
+ '>>': 7,
+ '>>>': 7,
+ '+': 6,
+ '-': 6,
+ '*': 5,
+ '/': 5,
+ '%': 5
};
- static final UNARY_OPERATORS =
- ['++', '--', '+', '-', '~', '!', 'typeof', 'void', 'delete', 'await']
- .toSet();
+ static final UNARY_OPERATORS = [
+ '++',
+ '--',
+ '+',
+ '-',
+ '~',
+ '!',
+ 'typeof',
+ 'void',
+ 'delete',
+ 'await'
+ ].toSet();
static final OPERATORS_THAT_LOOK_LIKE_IDENTIFIERS =
['typeof', 'void', 'delete', 'in', 'instanceof', 'await'].toSet();
@@ -697,8 +768,10 @@ class MiniJsParser {
if (currentCode == charCodes.$BACKSLASH) {
if (++position >= src.length) error("Unterminated literal");
int escaped = src.codeUnitAt(position);
- if (escaped == charCodes.$x || escaped == charCodes.$X ||
- escaped == charCodes.$u || escaped == charCodes.$U ||
+ if (escaped == charCodes.$x ||
+ escaped == charCodes.$X ||
+ escaped == charCodes.$u ||
+ escaped == charCodes.$U ||
category(escaped) == NUMERIC) {
error('Numeric and hex escapes are not allowed in literals');
}
@@ -714,8 +787,7 @@ class MiniJsParser {
if (position >= src.length) break;
int code = src.codeUnitAt(position);
// Skip '//' and '/*' style comments.
- if (code == charCodes.$SLASH &&
- position + 1 < src.length) {
+ if (code == charCodes.$SLASH && position + 1 < src.length) {
if (src.codeUnitAt(position + 1) == charCodes.$SLASH) {
int nextPosition = src.indexOf('\n', position);
if (nextPosition == -1) nextPosition = src.length;
@@ -746,8 +818,8 @@ class MiniJsParser {
lastCategory = STRING;
lastToken = getDelimited(position);
} else if (code == charCodes.$0 &&
- position + 2 < src.length &&
- src.codeUnitAt(position + 1) == charCodes.$x) {
+ position + 2 < src.length &&
+ src.codeUnitAt(position + 1) == charCodes.$x) {
// Hex literal.
for (position += 2; position < src.length; position++) {
int cat = category(src.codeUnitAt(position));
@@ -777,16 +849,15 @@ class MiniJsParser {
// Special code to disallow !, ~ and / in non-first position in token,
// so that !! and ~~ parse as two tokens and != parses as one, while =/
// parses as a an equals token followed by a regexp literal start.
- newCat =
- (code == charCodes.$BANG ||
- code == charCodes.$SLASH ||
- code == charCodes.$TILDE)
+ newCat = (code == charCodes.$BANG ||
+ code == charCodes.$SLASH ||
+ code == charCodes.$TILDE)
? NONE
: category(code);
} while (!singleCharCategory(cat) &&
- (cat == newCat ||
- (cat == ALPHA && newCat == NUMERIC) || // eg. level42.
- (cat == NUMERIC && newCat == DOT))); // eg. 3.1415
+ (cat == newCat ||
+ (cat == ALPHA && newCat == NUMERIC) || // eg. level42.
+ (cat == NUMERIC && newCat == DOT))); // eg. 3.1415
lastCategory = cat;
lastToken = src.substring(lastPosition, position);
if (cat == NUMERIC) {
@@ -829,7 +900,7 @@ class MiniJsParser {
// Accept semicolon or automatically inserted semicolon before close brace.
// Miniparser forbids other kinds of semicolon insertion.
if (RBRACE == lastCategory) return true;
- if (NONE == lastCategory) return true; // end of input
+ if (NONE == lastCategory) return true; // end of input
if (skippedNewline) {
error('No automatic semicolon insertion at preceding newline');
}
@@ -984,7 +1055,8 @@ class MiniJsParser {
propertyName = new LiteralString('"$identifier"');
} else if (acceptCategory(STRING)) {
propertyName = new LiteralString(identifier);
- } else if (acceptCategory(SYMBOL)) { // e.g. void
+ } else if (acceptCategory(SYMBOL)) {
+ // e.g. void
propertyName = new LiteralString('"$identifier"');
} else if (acceptCategory(HASH)) {
var nameOrPosition = parseHash();
@@ -1034,9 +1106,9 @@ class MiniJsParser {
expectCategory(COMMA);
}
}
- receiver = constructor ?
- new New(receiver, arguments) :
- new Call(receiver, arguments);
+ receiver = constructor
+ ? new New(receiver, arguments)
+ : new Call(receiver, arguments);
constructor = false;
} else if (!constructor && acceptCategory(LSQUARE)) {
Expression inBraces = parseExpression();
@@ -1091,7 +1163,8 @@ class MiniJsParser {
Expression parseUnaryHigh() {
String operator = lastToken;
- if (lastCategory == SYMBOL && UNARY_OPERATORS.contains(operator) &&
+ if (lastCategory == SYMBOL &&
+ UNARY_OPERATORS.contains(operator) &&
(acceptString("++") || acceptString("--") || acceptString('await'))) {
if (operator == "await") return new Await(parsePostfix());
return new Prefix(operator, parsePostfix());
@@ -1101,8 +1174,10 @@ class MiniJsParser {
Expression parseUnaryLow() {
String operator = lastToken;
- if (lastCategory == SYMBOL && UNARY_OPERATORS.contains(operator) &&
- operator != "++" && operator != "--") {
+ if (lastCategory == SYMBOL &&
+ UNARY_OPERATORS.contains(operator) &&
+ operator != "++" &&
+ operator != "--") {
expectCategory(SYMBOL);
if (operator == "await") return new Await(parsePostfix());
return new Prefix(operator, parseUnaryLow());
@@ -1114,7 +1189,7 @@ class MiniJsParser {
Expression lhs = parseUnaryLow();
int minPrecedence;
String lastSymbol;
- Expression rhs; // This is null first time around.
+ Expression rhs; // This is null first time around.
while (true) {
String symbol = lastToken;
if (lastCategory != SYMBOL ||
@@ -1146,7 +1221,6 @@ class MiniJsParser {
return new Conditional(lhs, ifTrue, ifFalse);
}
-
Expression parseAssignment() {
Expression lhs = parseConditional();
String assignmentOperator = lastToken;
@@ -1154,7 +1228,7 @@ class MiniJsParser {
Expression rhs = parseAssignment();
if (assignmentOperator == "=") {
return new Assignment(lhs, rhs);
- } else {
+ } else {
// Handle +=, -=, etc.
String operator =
assignmentOperator.substring(0, assignmentOperator.length - 1);
@@ -1280,7 +1354,6 @@ class MiniJsParser {
if (lastToken == 'with') {
error('Not implemented in mini parser');
}
-
}
bool checkForInterpolatedStatement = lastCategory == HASH;
@@ -1387,8 +1460,8 @@ class MiniJsParser {
expectCategory(RPAREN);
Statement body = parseStatement();
return new ForIn(
- new VariableDeclarationList([
- new VariableInitialization(declaration, null)]),
+ new VariableDeclarationList(
+ [new VariableInitialization(declaration, null)]),
objectExpression,
body);
}
@@ -1450,8 +1523,8 @@ class MiniJsParser {
}
List statements = new List<Statement>();
while (lastCategory != RBRACE &&
- lastToken != 'case' &&
- lastToken != 'default') {
+ lastToken != 'case' &&
+ lastToken != 'default') {
statements.add(parseStatement());
}
return expression == null
@@ -1484,7 +1557,7 @@ class MiniJsParser {
expectCategory(RPAREN);
expectCategory(LBRACE);
List<SwitchClause> clauses = new List<SwitchClause>();
- while(lastCategory != RBRACE) {
+ while (lastCategory != RBRACE) {
clauses.add(parseSwitchClause());
}
expectCategory(RBRACE);
« no previous file with comments | « no previous file | pkg/js_ast/lib/src/characters.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698