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

Side by Side Diff: tests/utils/dummy_compiler_test.dart

Issue 362243003: Generate mock libraries and assert that helpers are non-null. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix after rebase. Created 6 years, 5 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/compiler/dart2js/value_range_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 // VMOptions= 4 // VMOptions=
5 // VMOptions=--print-object-histogram 5 // VMOptions=--print-object-histogram
6 6
7 // Smoke test of the dart2js compiler API. 7 // Smoke test of the dart2js compiler API.
8 library dummy_compiler; 8 library dummy_compiler;
9 9
10 import 'dart:async'; 10 import 'dart:async';
11 import "package:async_helper/async_helper.dart"; 11 import "package:async_helper/async_helper.dart";
12 12
13 import 'package:compiler/compiler.dart'; 13 import 'package:compiler/compiler.dart';
14 14
15 import '../compiler/dart2js/mock_libraries.dart';
16
15 String libProvider(Uri uri) { 17 String libProvider(Uri uri) {
16 if (uri.path.endsWith("/core.dart")) { 18 if (uri.path.endsWith("/core.dart")) {
17 return """ 19 return buildLibrarySource(DEFAULT_CORE_LIBRARY);
18 library core; 20 } else if (uri.path.endsWith('core_patch.dart')) {
19 class Object { 21 return DEFAULT_PATCH_CORE_SOURCE;
20 Object();
21 // Note: JSNull below must reimplement all members.
22 operator==(other) {}
23 get hashCode => throw 'Object.hashCode not implemented.';
24 }
25 class Type {}
26 class bool {}
27 class num {}
28 class int {}
29 class double{}
30 class String{}
31 class Function{}
32 class List<E> {}
33 class Map {}
34 class Closure {}
35 class BoundClosure {}
36 class Dynamic_ {}
37 class Null {}
38 class StackTrace {}
39 class LinkedHashMap {
40 factory LinkedHashMap._empty() => null;
41 factory LinkedHashMap._literal(elements) => null;
42 }
43 identical(a, b) => true;
44 getRuntimeTypeInfo(o) {}
45 setRuntimeTypeInfo(o, i) {}
46 eqNull(a) {}
47 eqNullB(a) {}
48 const proxy = 0;""";
49 } else if (uri.path.endsWith('_patch.dart')) {
50 return """
51 import 'dart:_js_helper';
52 import 'dart:_interceptors';
53 import 'dart:_isolate_helper';""";
54 } else if (uri.path.endsWith('interceptors.dart')) { 22 } else if (uri.path.endsWith('interceptors.dart')) {
55 return """ 23 return buildLibrarySource(DEFAULT_INTERCEPTORS_LIBRARY);
56 class Interceptor {
57 operator==(other) {}
58 get hashCode => throw 'Interceptor.hashCode not implemented.';
59 }
60 abstract class JSIndexable {
61 get length;
62 }
63 abstract class JSMutableIndexable {}
64 abstract class JSArray<E> implements JSIndexable {
65 JSArray() {}
66 factory JSArray.typed(a) => a;
67 var removeLast;
68 var add;
69 }
70 abstract class JSMutableArray extends JSArray {}
71 abstract class JSFixedArray extends JSMutableArray {}
72 abstract class JSExtendableArray extends JSMutableArray {}
73 class JSString implements JSIndexable {
74 var split;
75 var concat;
76 operator+(other) {}
77 var toString;
78 get length => 0;
79 }
80 class JSFunction {}
81 class JSInt {}
82 class JSPositiveInt {}
83 class JSUInt31 {}
84 class JSUInt32 {}
85 class JSDouble {}
86 class JSNumber {}
87 class JSNull {
88 bool operator ==(other) => identical(null, other);
89 int get hashCode => 0;
90 }
91 class JSBool {}
92 getInterceptor(o){}
93 getDispatchProperty(o) {}
94 setDispatchProperty(o, v) {}
95 var mapTypeToInterceptor;""";
96 } else if (uri.path.endsWith('js_helper.dart')) { 24 } else if (uri.path.endsWith('js_helper.dart')) {
97 return """ 25 return buildLibrarySource(DEFAULT_JS_HELPER_LIBRARY);
98 library jshelper; class JSInvocationMirror {}
99 class ConstantMap {} class TypeImpl {}
100 createRuntimeType(String name) => null;
101 class Closure {}
102 class BoundClosure extends Closure {}
103 const patch = 0;
104 """;
105 } else if (uri.path.endsWith('isolate_helper.dart')) { 26 } else if (uri.path.endsWith('isolate_helper.dart')) {
106 return 'library isolatehelper; class _WorkerStub {}'; 27 return buildLibrarySource(DEFAULT_ISOLATE_HELPER_LIBRARY);
107 } else { 28 } else {
108 return "library lib${uri.path.replaceAll('/', '.')};"; 29 return "library lib${uri.path.replaceAll('/', '.')};";
109 } 30 }
110 } 31 }
111 32
112 Future<String> provider(Uri uri) { 33 Future<String> provider(Uri uri) {
113 String source; 34 String source;
114 if (uri.scheme == "main") { 35 if (uri.scheme == "main") {
115 source = "main() {}"; 36 source = "main() {}";
116 } else if (uri.scheme == "lib") { 37 } else if (uri.scheme == "lib") {
(...skipping 17 matching lines...) Expand all
134 Future<String> result = 55 Future<String> result =
135 compile(new Uri(scheme: 'main'), 56 compile(new Uri(scheme: 'main'),
136 new Uri(scheme: 'lib', path: '/'), 57 new Uri(scheme: 'lib', path: '/'),
137 new Uri(scheme: 'package', path: '/'), 58 new Uri(scheme: 'package', path: '/'),
138 provider, handler); 59 provider, handler);
139 result.then((String code) { 60 result.then((String code) {
140 if (code == null) { 61 if (code == null) {
141 throw 'Compilation failed'; 62 throw 'Compilation failed';
142 } 63 }
143 }, onError: (e) { 64 }, onError: (e) {
144 throw 'Compilation failed'; 65 throw 'Compilation failed: $e';
145 }).then(asyncSuccess); 66 }).then(asyncSuccess);
146 } 67 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/value_range_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698