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

Side by Side Diff: tests/lib/mirrors/find_in_context_fake_function_test.dart

Issue 276043003: Lay waste to ClosureMirror.findInContext. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: remove stub in dart2js Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/lib/lib.status ('k') | tests/lib/mirrors/find_in_context_private_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 // VMOptions=--support_find_in_context=true
6
7 // Regression test: this used to crash the VM.
8
9 library test.find_in_context_fake_function;
10
11 import "dart:mirrors";
12 import "package:expect/expect.dart";
13
14 var topLevelField = 1;
15 get topLevelGetter => 2;
16 topLevelFunction() => 3;
17
18 class FakeFunction1 {
19 var field = 4;
20 get getter => 5;
21 method() => 6;
22 static var staticField = 7;
23 static get staticGetter => 8;
24 staticFunction() => 9;
25 call(x) {
26 var local = x * 2;
27 return local;
28 }
29 }
30
31 class FakeFunction2 implements Function {
32 var field = 10;
33 get getter => 11;
34 method() => 12;
35 static var staticField = 13;
36 static get staticGetter => 14;
37 staticFunction() => 15;
38 noSuchMethod(msg) {
39 var local = msg.positionalArguments;
40 if (msg.memberName != #call) return super.noSuchMethod(msg);
41 return local.join('+');
42 }
43 }
44
45 doFindInContext(cm, name, value) {
46 Expect.equals(value,
47 cm.findInContext(name).reflectee);
48 }
49 dontFindInContext(cm, name) {
50 Expect.isNull(cm.findInContext(name));
51 }
52
53 main() {
54 ClosureMirror cm = reflect(new FakeFunction1());
55 dontFindInContext(cm, #local);
56 dontFindInContext(cm, const Symbol('this'));
57 dontFindInContext(cm, #field);
58 dontFindInContext(cm, #getter);
59 dontFindInContext(cm, #method);
60 dontFindInContext(cm, #staticField);
61 dontFindInContext(cm, #staticGetter);
62 dontFindInContext(cm, #staticFunction);
63 dontFindInContext(cm, #topLevelField);
64 dontFindInContext(cm, #topLevelGetter);
65 dontFindInContext(cm, #topLevelFunction);
66
67 cm = reflect(new FakeFunction2());
68 dontFindInContext(cm, #local);
69 dontFindInContext(cm, const Symbol('this'));
70 dontFindInContext(cm, #field);
71 dontFindInContext(cm, #getter);
72 dontFindInContext(cm, #method);
73 dontFindInContext(cm, #staticField);
74 dontFindInContext(cm, #staticGetter);
75 dontFindInContext(cm, #staticFunction);
76 dontFindInContext(cm, #topLevelField);
77 dontFindInContext(cm, #topLevelGetter);
78 dontFindInContext(cm, #topLevelFunction);
79 }
OLDNEW
« no previous file with comments | « tests/lib/lib.status ('k') | tests/lib/mirrors/find_in_context_private_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698