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

Side by Side Diff: sdk/lib/_internal/compiler/samples/compile_loop/compile_loop.dart

Issue 694353007: Move dart2js from sdk/lib/_internal/compiler to pkg/compiler (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month 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
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 // This sample demonstrates how to run the compiler in a loop reading
6 // all sources from memory, instead of using dart:io.
7 library sample.compile_loop;
8
9 import 'dart:async';
10
11 import '../../compiler.dart' as compiler;
12
13 // If this file is missing, generate it using ../jsonify/jsonify.dart.
14 import 'sdk.dart';
15
16 Future<String> compile(source) {
17 Future<String> inputProvider(Uri uri) {
18 if (uri.scheme == 'sdk') {
19 var value = SDK_SOURCES['$uri'];
20 if (value == null) {
21 // TODO(ahe): Use new Future.error.
22 throw new Exception('Error: Cannot read: $uri');
23 }
24 return new Future.value(value);
25 } else if ('$uri' == 'memory:/main.dart') {
26 return new Future.value(source);
27 }
28 // TODO(ahe): Use new Future.error.
29 throw new Exception('Error: Cannot read: $uri');
30 }
31 void handler(Uri uri, int begin, int end,
32 String message, compiler.Diagnostic kind) {
33 // TODO(ahe): Remove dart:io import from
34 // ../../implementation/source_file_provider.dart and use
35 // FormattingDiagnosticHandler instead.
36 print({ 'uri': '$uri',
37 'begin': begin,
38 'end': end,
39 'message': message,
40 'kind': kind.name });
41 if (kind == compiler.Diagnostic.ERROR) {
42 throw new Exception('Unexpected error occurred.');
43 }
44 }
45 return compiler.compile(
46 Uri.parse('memory:/main.dart'),
47 Uri.parse('sdk:/sdk/'),
48 null,
49 inputProvider,
50 handler,
51 []);
52 }
53
54 int iterations = 10;
55
56 main() {
57 compile(EXAMPLE_HELLO_HTML).then((jsResult) {
58 if (jsResult == null) throw 'Compilation failed';
59 if (--iterations > 0) main();
60 });
61 }
62
63 const String EXAMPLE_HELLO_HTML = r'''
64 // Go ahead and modify this example.
65
66 import "dart:html";
67
68 var greeting = "Hello, World!";
69
70 // Displays a greeting.
71 void main() {
72 // This example uses HTML to display the greeting and it will appear
73 // in a nested HTML frame (an iframe).
74 document.body.append(new HeadingElement.h1()..appendText(greeting));
75 }
76 ''';
OLDNEW
« no previous file with comments | « sdk/lib/_internal/compiler/implementation/world.dart ('k') | sdk/lib/_internal/compiler/samples/darttags/darttags.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698