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

Side by Side Diff: pkg/dev_compiler/tool/input_sdk/patch/async_patch.dart

Issue 2542723003: Sprinkle some types on the SDK like the static typing fairy. (Closed)
Patch Set: Created 4 years 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
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 4
5 // Patch file for the dart:async library. 5 // Patch file for the dart:async library.
6 6
7 import 'dart:_js_helper' show 7 import 'dart:_js_helper' show
8 patch, 8 patch,
9 Primitives; 9 Primitives;
10 import 'dart:_isolate_helper' show 10 import 'dart:_isolate_helper' show
11 IsolateNatives, 11 IsolateNatives,
12 TimerImpl, 12 TimerImpl,
13 leaveJsAsync, 13 leaveJsAsync,
14 enterJsAsync, 14 enterJsAsync,
15 isWorker; 15 isWorker;
16 16
17 import 'dart:_foreign_helper' show JS; 17 import 'dart:_foreign_helper' show JS;
18 18
19 typedef void _Callback();
20 typedef void _TakeCallback(_Callback callback);
21
19 @patch 22 @patch
20 class _AsyncRun { 23 class _AsyncRun {
21 @patch 24 @patch
22 static void _scheduleImmediate(void callback()) { 25 static void _scheduleImmediate(void callback()) {
23 _scheduleImmediateClosure(callback); 26 _scheduleImmediateClosure(callback);
24 } 27 }
25 28
26 // Lazily initialized. 29 // Lazily initialized.
27 static final Function _scheduleImmediateClosure = 30 static final _TakeCallback _scheduleImmediateClosure =
28 _initializeScheduleImmediate(); 31 _initializeScheduleImmediate();
29 32
30 static Function _initializeScheduleImmediate() { 33 static _TakeCallback _initializeScheduleImmediate() {
31 // TODO(rnystrom): Not needed by dev_compiler. 34 // TODO(rnystrom): Not needed by dev_compiler.
32 // requiresPreamble(); 35 // requiresPreamble();
33 if (JS('', 'self.scheduleImmediate') != null) { 36 if (JS('', 'self.scheduleImmediate') != null) {
34 return _scheduleImmediateJsOverride; 37 return _scheduleImmediateJsOverride;
35 } 38 }
36 if (JS('', 'self.MutationObserver') != null && 39 if (JS('', 'self.MutationObserver') != null &&
37 JS('', 'self.document') != null) { 40 JS('', 'self.document') != null) {
38 // Use mutationObservers. 41 // Use mutationObservers.
39 var div = JS('', 'self.document.createElement("div")'); 42 var div = JS('', 'self.document.createElement("div")');
40 var span = JS('', 'self.document.createElement("span")'); 43 var span = JS('', 'self.document.createElement("span")');
41 var storedCallback; 44 _Callback storedCallback;
42 45
43 internalCallback(_) { 46 internalCallback(_) {
44 leaveJsAsync(); 47 leaveJsAsync();
45 var f = storedCallback; 48 var f = storedCallback;
46 storedCallback = null; 49 storedCallback = null;
47 f(); 50 f();
48 }; 51 };
49 52
50 var observer = JS('', 'new self.MutationObserver(#)', internalCallback); 53 var observer = JS('', 'new self.MutationObserver(#)', internalCallback);
51 JS('', '#.observe(#, { childList: true })', 54 JS('', '#.observe(#, { childList: true })',
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 } 121 }
119 } 122 }
120 123
121 @patch 124 @patch
122 void _rethrow(Object error, StackTrace stackTrace) { 125 void _rethrow(Object error, StackTrace stackTrace) {
123 // TODO(rnystrom): Not needed by dev_compiler. 126 // TODO(rnystrom): Not needed by dev_compiler.
124 // error = wrapException(error); 127 // error = wrapException(error);
125 JS("void", "#.stack = #", error, stackTrace.toString()); 128 JS("void", "#.stack = #", error, stackTrace.toString());
126 JS("void", "throw #", error); 129 JS("void", "throw #", error);
127 } 130 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698