Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Compiler is broken when using mockito unit testing #24493

Closed
alextech opened this issue Oct 2, 2015 · 5 comments
Closed

The Compiler is broken when using mockito unit testing #24493

alextech opened this issue Oct 2, 2015 · 5 comments
Assignees
Labels
P2 A bug or feature request we're likely to work on web-dart2js

Comments

@alextech
Copy link

alextech commented Oct 2, 2015

Compiler crashes when mocking a dependency with mockito 0.11 and test 0.12.4+9 on Windows 10. Compiler executed with pub.bat run test:test -p phantomjs

Unable to figure out how to fix. Unit test files looks like this but I am not sure if I stripped too much code for this report. Constructors are just as shown. I do not know where exactly to look for the issue at this point.

import 'package:test/test.dart';
import 'package:mockito/mockito.dart';

class AReactView {
    void addEventListener(String eventName) {
        print ("event subscription suppose to occur");
    }

    void set state(Map state) {
        print("state received");
    }
}

class TestThis {
    AReactView dep;

    TestThis(AReactView dependency) {
        this.dep = dependency;
    }
}

class MockReactView extends Mock implements AReactView{
    noSuchMethod(i) => super.noSuchMethod(i);
}
void main() {
     test('Test mock methods get called', () {
         var mockReactView = new MockReactView();
         TestThis t = new TestThis(mockReactView);
});
}

Crash report:
../../../../../AROMAN~1/AppData/Local/Temp/dart_test_64e139b1-694a-11e5-9bcf-5c260a791bae/runInBrowser.dart:
Warning:
****************************************************************
* WARNING: dart:mirrors support in dart2js is experimental,
* and not recommended.
* This implementation of mirrors is incomplete,
* and often greatly increases the size of the generated
* JavaScript code.
*
* Your app imports dart:mirrors via:
* test/views/MyComponentView_test.dart => package:mockito => dart:mirrors
*
* You can disable this message by using the --enable-experimental-mirrors
* command-line flag.
*
* To learn what to do next, please visit:
* http://dartlang.org/dart2js-reflection
****************************************************************

packages/mockito/mockito.dart:215:30:
Hint: Using 'MirrorSystem.getName' may lead to unnecessarily large generated code.
Try adding '@MirrorsUsed(...)' as described at https://goo.gl/Akrrog.
      return "${MirrorSystem.getName(key)}: ${invocation.namedArguments[key]}";
                             ^^^^^^^
packages/mockito/mockito.dart:221:34:
Hint: Using 'MirrorSystem.getName' may lead to unnecessarily large generated code.
Try adding '@MirrorsUsed(...)' as described at https://goo.gl/Akrrog.
    String method = MirrorSystem.getName(invocation.memberName);
                                 ^^^^^^^
../../../../../AROMAN~1/AppData/Local/Temp/dart_test_64e139b1-694a-11e5-9bcf-5c260a791bae/runInBrowser.dart:
Internal Error: The compiler crashed when compiling this element.

The compiler is broken.

When compiling the above element, the compiler crashed. It is not
possible to tell if this is caused by a problem in your program or
not. Regardless, the compiler should not crash.

The Dart team would greatly appreciate if you would take a moment to
report this problem at http://dartbug.com/new.

Please include the following information:

* the name and version of your operating system,

* the Dart SDK build number (1.12.1), and

* the entire message you see here (including the full stack trace
  below as well as the source location above).

The compiler crashed: The null object does not have a method 'markSeen'.

NoSuchMethodError: method not found: 'markSeen'
Receiver: null
Arguments: [Instance of 'TokenCounter']
#0      Object._noSuchMethod (dart:core-patch/object_patch.dart:42)
#1      Object.noSuchMethod (dart:core-patch/object_patch.dart:45)
#2      _ForwardingMetadataEntry.markSeen (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js_emitter/metadata_collector.dart:82)
#3      TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:102)
#4      BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#5      BaseVisitor.visitToken (package:js_ast/src/nodes.dart:150)
#6      BaseVisitor.visitDeferredNumber (package:js_ast/src/nodes.dart:153)
#7      DeferredNumber.accept (package:js_ast/src/nodes.dart:984)
#8      ArrayInitializer.visitChildren (package:js_ast/src/nodes.dart:1089)
#9      BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#10     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#11     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#12     BaseVisitor.visitArrayInitializer (package:js_ast/src/nodes.dart:167)
#13     ArrayInitializer.accept (package:js_ast/src/nodes.dart:1086)
#14     _BoundMetadataEntry.markSeen (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js_emitter/metadata_collector.dart:47)
#15     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:102)
#16     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#17     BaseVisitor.visitToken (package:js_ast/src/nodes.dart:150)
#18     BaseVisitor.visitDeferredNumber (package:js_ast/src/nodes.dart:153)
#19     DeferredNumber.accept (package:js_ast/src/nodes.dart:984)
#20     ArrayInitializer.visitChildren (package:js_ast/src/nodes.dart:1089)
#21     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#22     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#23     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#24     BaseVisitor.visitArrayInitializer (package:js_ast/src/nodes.dart:167)
#25     ArrayInitializer.accept (package:js_ast/src/nodes.dart:1086)
#26     Property.visitChildren (package:js_ast/src/nodes.dart:1146)
#27     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#28     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#29     BaseVisitor.visitProperty (package:js_ast/src/nodes.dart:170)
#30     Property.accept (package:js_ast/src/nodes.dart:1142)
#31     ObjectInitializer.visitChildren (package:js_ast/src/nodes.dart:1127)
#32     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#33     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#34     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#35     BaseVisitor.visitObjectInitializer (package:js_ast/src/nodes.dart:169)
#36     ObjectInitializer.accept (package:js_ast/src/nodes.dart:1124)
#37     ArrayInitializer.visitChildren (package:js_ast/src/nodes.dart:1089)
#38     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#39     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#40     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#41     BaseVisitor.visitArrayInitializer (package:js_ast/src/nodes.dart:167)
#42     ArrayInitializer.accept (package:js_ast/src/nodes.dart:1086)
#43     ArrayInitializer.visitChildren (package:js_ast/src/nodes.dart:1089)
#44     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#45     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#46     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#47     BaseVisitor.visitArrayInitializer (package:js_ast/src/nodes.dart:167)
#48     ArrayInitializer.accept (package:js_ast/src/nodes.dart:1086)
#49     Assignment.visitChildren (package:js_ast/src/nodes.dart:675)
#50     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#51     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#52     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#53     BaseVisitor.visitAssignment (package:js_ast/src/nodes.dart:125)
#54     BaseVisitor.visitVariableInitialization (package:js_ast/src/nodes.dart:128)
#55     VariableInitialization.accept (package:js_ast/src/nodes.dart:689)
#56     VariableDeclarationList.visitChildren (package:js_ast/src/nodes.dart:648)
#57     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#58     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#59     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#60     BaseVisitor.visitVariableDeclarationList (package:js_ast/src/nodes.dart:124)
#61     VariableDeclarationList.accept (package:js_ast/src/nodes.dart:644)
#62     ExpressionStatement.visitChildren (package:js_ast/src/nodes.dart:269)
#63     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#64     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#65     BaseVisitor.visitStatement (package:js_ast/src/nodes.dart:91)
#66     BaseVisitor.visitExpressionStatement (package:js_ast/src/nodes.dart:97)
#67     ExpressionStatement.accept (package:js_ast/src/nodes.dart:268)
#68     Block.visitChildren (package:js_ast/src/nodes.dart:257)
#69     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#70     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#71     BaseVisitor.visitStatement (package:js_ast/src/nodes.dart:91)
#72     BaseVisitor.visitBlock (package:js_ast/src/nodes.dart:95)
#73     Block.accept (package:js_ast/src/nodes.dart:255)
#74     Fun.visitChildren (package:js_ast/src/nodes.dart:917)
#75     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#76     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#77     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#78     BaseVisitor.visitFun (package:js_ast/src/nodes.dart:148)
#79     Fun.accept (package:js_ast/src/nodes.dart:913)
#80     Call.visitChildren (package:js_ast/src/nodes.dart:727)
#81     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#82     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#83     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119)
#84     BaseVisitor.visitCall (package:js_ast/src/nodes.dart:135)
#85     Call.accept (package:js_ast/src/nodes.dart:724)
#86     ExpressionStatement.visitChildren (package:js_ast/src/nodes.dart:269)
#87     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#88     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#89     BaseVisitor.visitStatement (package:js_ast/src/nodes.dart:91)
#90     BaseVisitor.visitExpressionStatement (package:js_ast/src/nodes.dart:97)
#91     ExpressionStatement.accept (package:js_ast/src/nodes.dart:268)
#92     Program.visitChildren (package:js_ast/src/nodes.dart:241)
#93     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85)
#94     TokenCounter.visitNode (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:104)
#95     BaseVisitor.visitProgram (package:js_ast/src/nodes.dart:89)
#96     Program.accept (package:js_ast/src/nodes.dart:239)
#97     TokenCounter.countTokens (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js/js.dart:108)
#98     Emitter.finalizeTokensInAst (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart:1755)
#99     Emitter.emitProgram (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart:1791)
#100    CodeEmitterTask.assembleProgram.<anonymous closure> (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart:146)
#101    CompilerTask.measure (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/compiler.dart:2213)
#102    CodeEmitterTask.assembleProgram (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart:140)
#103    JavaScriptBackend.assembleProgram (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/js_backend/backend.dart:1490)
#104    Compiler.compileLoadedLibraries (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/compiler.dart:1685)
#105    Compiler.runCompiler.<anonymous closure> (file:///E:/b/build/slave/dart-sdk-windows-stable/build/sdk/pkg/compiler/lib/src/compiler.dart:1524)
#106    _RootZone.runUnary (dart:async/zone.dart:1166)
#107    _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:494)
#108    _Future._propagateToListeners (dart:async/future_impl.dart:577)
#109    _Future._completeWithValue (dart:async/future_impl.dart:368)
#110    _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:422)
#111    _microtaskLoop (dart:async/schedule_microtask.dart:43)
#112    _microtaskLoopEntry (dart:async/schedule_microtask.dart:52)
#113    _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#114    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:149)
@harryterkelsen
Copy link
Contributor

I can't repro the crash with the file provided. Can you try running dart2js on the code in checked mode and sharing the results?

DART_VM_OPTIONS="--checked" dart2js <your dart file>

@alextech
Copy link
Author

alextech commented Oct 3, 2015

Thank you very much for the reply. Adding --checked parameter produced identical output. I was able to narrow the issue down to combination of mockito and stagexl libraries. The pubspec file is

dependencies:
   stagexl: any
dev_dependencies:
   test: "^0.12.4"
   mockito: "^0.11.0"

UnitTest file that causes the crash:

import 'package:test/test.dart';
import 'package:mockito/mockito.dart';

import 'package:stagexl/stagexl.dart';

class AReactView {
  void addEventListener(String eventName) {
    print ("event subscription suppose to occur");
  }

  void set state(Map state) {
    print("state received");
  }
}


class MockReactView extends Mock implements AReactView{

  noSuchMethod(i) => super.noSuchMethod(i);
}

class TestThis extends DisplayObjectContainer {
  AReactView dep;

  TestThis(AReactView dependency) {
    this.dep = dependency;
  }
}

void main() {
  test('Replicate compiler crash', () {

      var mockView = new MockReactView();
      mockView.addEventListener("TEST LISTENER");

      TestThis subject = new TestThis();
      subject.tabChildren = true;
      print(subject.tabChildren);


      verify(mockView.addEventListener("TEST LISTENER"));

    // sanity check
      expect(1, 1);
  });
}

In this example, instantiating a mock for AReactView or TestThis() one at a time works fine. Only when creating the two instances together does the crash occurs.

@harryterkelsen
Copy link
Contributor

Thanks, I was able to repro the crash on my machine with the provided files. When I run in checked mode I get this crash:

test/test.dart:
Internal Error: The compiler crashed when compiling this element.

The compiler is broken.

When compiling the above element, the compiler crashed. It is not
possible to tell if this is caused by a problem in your program or
not. Regardless, the compiler should not crash.

The Dart team would greatly appreciate if you would take a moment to
report this problem at http://dartbug.com/new.

Please include the following information:

* the name and version of your operating system,

* the Dart SDK build number (build number could not be determined), and

* the entire message you see here (including the full stack trace
  below as well as the source location above).

The compiler crashed: 'file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_emitter/metadata_collector.dart': Failed assertion: line 66 pos 13: 'isBound' is not true.
#0      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:27)
#1      _ForwardingMetadataEntry.forwardTo (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_emitter/metadata_collector.dart:66:13)
#2      _ForwardingMetadataEntry.markSeen (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_emitter/metadata_collector.dart:82:42)
#3      TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:111:12)
#4      BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#5      BaseVisitor.visitToken (package:js_ast/src/nodes.dart:150:39)
#6      BaseVisitor.visitDeferredNumber (package:js_ast/src/nodes.dart:153:49)
#7      DeferredNumber.accept (package:js_ast/src/nodes.dart:984:42)
#8      ArrayInitializer.visitChildren (package:js_ast/src/nodes.dart:1089:50)
#9      BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#10     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#11     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#12     BaseVisitor.visitArrayInitializer (package:js_ast/src/nodes.dart:167:53)
#13     ArrayInitializer.accept (package:js_ast/src/nodes.dart:1086:42)
#14     _BoundMetadataEntry.markSeen (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_emitter/metadata_collector.dart:47:25)
#15     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:111:12)
#16     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#17     BaseVisitor.visitToken (package:js_ast/src/nodes.dart:150:39)
#18     BaseVisitor.visitDeferredNumber (package:js_ast/src/nodes.dart:153:49)
#19     DeferredNumber.accept (package:js_ast/src/nodes.dart:984:42)
#20     ArrayInitializer.visitChildren (package:js_ast/src/nodes.dart:1089:50)
#21     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#22     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#23     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#24     BaseVisitor.visitArrayInitializer (package:js_ast/src/nodes.dart:167:53)
#25     ArrayInitializer.accept (package:js_ast/src/nodes.dart:1086:42)
#26     Property.visitChildren (package:js_ast/src/nodes.dart:1146:11)
#27     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#28     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#29     BaseVisitor.visitProperty (package:js_ast/src/nodes.dart:170:37)
#30     Property.accept (package:js_ast/src/nodes.dart:1142:42)
#31     ObjectInitializer.visitChildren (package:js_ast/src/nodes.dart:1127:44)
#32     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#33     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#34     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#35     BaseVisitor.visitObjectInitializer (package:js_ast/src/nodes.dart:169:55)
#36     ObjectInitializer.accept (package:js_ast/src/nodes.dart:1124:42)
#37     ArrayInitializer.visitChildren (package:js_ast/src/nodes.dart:1089:50)
#38     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#39     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#40     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#41     BaseVisitor.visitArrayInitializer (package:js_ast/src/nodes.dart:167:53)
#42     ArrayInitializer.accept (package:js_ast/src/nodes.dart:1086:42)
#43     ArrayInitializer.visitChildren (package:js_ast/src/nodes.dart:1089:50)
#44     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#45     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#46     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#47     BaseVisitor.visitArrayInitializer (package:js_ast/src/nodes.dart:167:53)
#48     ArrayInitializer.accept (package:js_ast/src/nodes.dart:1086:42)
#49     Assignment.visitChildren (package:js_ast/src/nodes.dart:675:30)
#50     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#51     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#52     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#53     BaseVisitor.visitAssignment (package:js_ast/src/nodes.dart:125:41)
#54     BaseVisitor.visitVariableInitialization (package:js_ast/src/nodes.dart:128:14)
#55     VariableInitialization.accept (package:js_ast/src/nodes.dart:689:42)
#56     VariableDeclarationList.visitChildren (package:js_ast/src/nodes.dart:648:19)
#57     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#58     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#59     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#60     BaseVisitor.visitVariableDeclarationList (package:js_ast/src/nodes.dart:124:10)
#61     VariableDeclarationList.accept (package:js_ast/src/nodes.dart:644:42)
#62     ExpressionStatement.visitChildren (package:js_ast/src/nodes.dart:269:56)
#63     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#64     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#65     BaseVisitor.visitStatement (package:js_ast/src/nodes.dart:91:39)
#66     BaseVisitor.visitExpressionStatement (package:js_ast/src/nodes.dart:97:10)
#67     ExpressionStatement.accept (package:js_ast/src/nodes.dart:268:42)
#68     Block.visitChildren (package:js_ast/src/nodes.dart:257:55)
#69     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#70     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#71     BaseVisitor.visitStatement (package:js_ast/src/nodes.dart:91:39)
#72     BaseVisitor.visitBlock (package:js_ast/src/nodes.dart:95:31)
#73     Block.accept (package:js_ast/src/nodes.dart:255:42)
#74     Fun.visitChildren (package:js_ast/src/nodes.dart:917:10)
#75     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#76     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#77     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#78     BaseVisitor.visitFun (package:js_ast/src/nodes.dart:148:27)
#79     Fun.accept (package:js_ast/src/nodes.dart:913:42)
#80     Call.visitChildren (package:js_ast/src/nodes.dart:727:12)
#81     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#82     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#83     BaseVisitor.visitExpression (package:js_ast/src/nodes.dart:119:41)
#84     BaseVisitor.visitCall (package:js_ast/src/nodes.dart:135:29)
#85     Call.accept (package:js_ast/src/nodes.dart:724:42)
#86     ExpressionStatement.visitChildren (package:js_ast/src/nodes.dart:269:56)
#87     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#88     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#89     BaseVisitor.visitStatement (package:js_ast/src/nodes.dart:91:39)
#90     BaseVisitor.visitExpressionStatement (package:js_ast/src/nodes.dart:97:10)
#91     ExpressionStatement.accept (package:js_ast/src/nodes.dart:268:42)
#92     Program.visitChildren (package:js_ast/src/nodes.dart:241:49)
#93     BaseVisitor.visitNode (package:js_ast/src/nodes.dart:85:10)
#94     TokenCounter.visitNode (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:113:22)
#95     BaseVisitor.visitProgram (package:js_ast/src/nodes.dart:89:35)
#96     Program.accept (package:js_ast/src/nodes.dart:239:42)
#97     TokenCounter.countTokens (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js/js.dart:117:39)
#98     Emitter.finalizeTokensInAst (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart:1768:13)
#99     Emitter.emitProgram (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart:1804:5)
#100    CodeEmitterTask.assembleProgram.<anonymous closure> (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart:146:26)
#101    CompilerTask.measure (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/common/tasks.dart:55:37)
#102    CodeEmitterTask.assembleProgram (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_emitter/code_emitter_task.dart:140:12)
#103    JavaScriptBackend.assembleProgram (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/js_backend/backend.dart:1570:31)
#104    Compiler.compileLoadedLibraries (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/compiler.dart:1054:31)
#105    Compiler.runCompiler.<anonymous closure> (file:///usr/local/google/home/het/code/dart/sdk/pkg/compiler/lib/src/compiler.dart:879:7)
#106    _RootZone.runUnary (dart:async/zone.dart:1149)
#107    _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:502)
#108    _Future._propagateToListeners (dart:async/future_impl.dart:585)
#109    _Future._completeWithValue (dart:async/future_impl.dart:376)
#110    _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:430)
#111    _microtaskLoop (dart:async/schedule_microtask.dart:43)
#112    _microtaskLoopEntry (dart:async/schedule_microtask.dart:52)
#113    _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:96)
#114    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)

@sigmundch
Copy link
Member

most likely becuase mockito is marking everything as retained by mirrors, we might be hitting a corner case on the frequency namer.

@herhut-ggl - maybe you have a quick clue of what could be happening here? From what I could see this happens on a type variable for Point#T (defined both in that package under geom/point.dart and in dart:core).

@alextech - you might be able to work around this issue by using the @MirrorsUsed annotation and marking only your MockReactView class to be preserved by adding this to your test file:

@MirrorsUsed(targets: "MockReactView", override: "*")
import 'dart:mirrors';

@ghost
Copy link

ghost commented Oct 7, 2015

I have a proposed fix in https://codereview.chromium.org/1394483002/.

@ghost ghost closed this as completed in 80aa2a4 Oct 7, 2015
@kevmoo kevmoo added P2 A bug or feature request we're likely to work on and removed triaged labels Mar 1, 2016
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P2 A bug or feature request we're likely to work on web-dart2js
Projects
None yet
Development

No branches or pull requests

4 participants