| Index: tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart
|
| diff --git a/tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart b/tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart
|
| index 3c982c744a704b6bc2c9d7301a6df76c47c8d9d3..1f06307f1fe54b0dff42421870d1c00dbf8374ce 100644
|
| --- a/tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart
|
| +++ b/tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart
|
| @@ -87,7 +87,17 @@ class Tokens {
|
|
|
| String read([String expected]) {
|
| if (expected != null) {
|
| - assert(current == expected);
|
| + if (current != expected) {
|
| + print('expected "$expected", found "$current"');
|
| + int start = _index - 15;
|
| + String dotdotdot = '... ';
|
| + if (start < 0) {
|
| + start = 0;
|
| + dotdotdot = '';
|
| + }
|
| + print('${dotdotdot}${_list.sublist(start, _index + 1).join(' ')}');
|
| + assert(current == expected);
|
| + }
|
| }
|
| return _list[_index++];
|
| }
|
| @@ -268,6 +278,20 @@ class SExpressionUnstringifier {
|
| element = new DummyElement(tokens.read());
|
| }
|
|
|
| + // (this) or ()
|
| + Definition thisParameter = null;
|
| + tokens.consumeStart();
|
| + if (tokens.current != ')') {
|
| + String thisName = tokens.read();
|
| + if (name2variable.containsKey(thisName)) {
|
| + thisParameter = name2variable[thisName];
|
| + } else {
|
| + thisParameter = new Parameter(new DummyElement(thisName));
|
| + name2variable[thisName] = thisParameter;
|
| + }
|
| + }
|
| + tokens.consumeEnd();
|
| +
|
| // (parameters)
|
| List<Definition> parameters = <Definition>[];
|
| tokens.consumeStart();
|
| @@ -292,7 +316,7 @@ class SExpressionUnstringifier {
|
| Expression body = parseExpression();
|
|
|
| tokens.consumeEnd();
|
| - return new FunctionDefinition(element, parameters,
|
| + return new FunctionDefinition(element, thisParameter, parameters,
|
| new RunnableBody(body, cont), null, null);
|
| }
|
|
|
|
|