| Index: tests/standalone/debugger/step_in_equals_test.dart
|
| ===================================================================
|
| --- tests/standalone/debugger/step_in_equals_test.dart (revision 0)
|
| +++ tests/standalone/debugger/step_in_equals_test.dart (revision 0)
|
| @@ -0,0 +1,59 @@
|
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +import "debug_lib.dart";
|
| +
|
| +class MyClass {
|
| + operator ==(other) {
|
| + print(other);
|
| + return true; // Breakpoint #3.
|
| + }
|
| +}
|
| +
|
| +main() {
|
| + if (RunScript(testScript)) return;
|
| + var a = new MyClass();
|
| + var b = null;
|
| + var x = a == b; // Breakpoint #1.
|
| + print(x);
|
| + b = 123;
|
| + a == b; // Breakpoint #2.
|
| + print("after 2");
|
| + if (a == null) { // Breakpoint #4.
|
| + throw "unreachable";
|
| + }
|
| + print("after 4");
|
| + if (null == a) {
|
| + throw "unreachable";
|
| + }
|
| + print("ok");
|
| +}
|
| +
|
| +var testScript = [
|
| + MatchFrames(["main"]),
|
| + SetBreakpoint(18),
|
| + SetBreakpoint(21),
|
| + SetBreakpoint(10),
|
| + SetBreakpoint(23),
|
| + Resume(),
|
| + MatchFrames(["main"]), // At breakpoint #1.
|
| + StepInto(),
|
| + MatchFrames(["main"]), // Don't step into == method because of null.
|
| + Resume(),
|
| + MatchFrames(["main"]), // At breakpoint #2.
|
| + StepInto(),
|
| + StepInto(),
|
| + MatchFrames(["MyClass.==", "main"]), // At MyClass.== entry.
|
| + Resume(),
|
| + MatchFrames(["MyClass.==", "main"]), // At breakpoint #3.
|
| + Resume(),
|
| + MatchFrames(["main"]), // At breakpoint #4.
|
| + StepInto(),
|
| + MatchFrames(["main"]), // After breakpoint #4.
|
| + Step(),
|
| + MatchFrames(["main"]), // At null == a.
|
| + StepInto(),
|
| + MatchFrames(["main"]), // After null == a.
|
| + Resume()
|
| +];
|
|
|