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

Unified Diff: tests/standalone/debugger/step_in_equals_test.dart

Issue 24203004: Dart VM: Simplify code generation for equality operators. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: rebased Created 7 years, 3 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 | « tests/language/vm/function_equality_vm_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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()
+];
« no previous file with comments | « tests/language/vm/function_equality_vm_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698