OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /* This file defines the module loader for the dart runtime. | 5 /* This file defines the module loader for the dart runtime. |
6 */ | 6 */ |
7 var dart_library; | 7 var dart_library; |
8 if (!dart_library) { | 8 if (!dart_library) { |
9 dart_library = | 9 dart_library = |
10 typeof module != "undefined" && module.exports || {}; | 10 typeof module != "undefined" && module.exports || {}; |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
133 dart_library.start = start; | 133 dart_library.start = start; |
134 | 134 |
135 let _bootstrapped = false; | 135 let _bootstrapped = false; |
136 function bootstrap() { | 136 function bootstrap() { |
137 if (_bootstrapped) return; | 137 if (_bootstrapped) return; |
138 _bootstrapped = true; | 138 _bootstrapped = true; |
139 | 139 |
140 // Force import of core. | 140 // Force import of core. |
141 var dart_sdk = import_('dart_sdk'); | 141 var dart_sdk = import_('dart_sdk'); |
142 | 142 |
143 // TODO(vsm): Move this to a shared location: | |
144 // https://github.com/dart-lang/sdk/issues/27605 | |
145 if (typeof NodeList !== "undefined") { | |
146 // TODO(vsm): Do we still need these? | |
147 NodeList.prototype.get = function(i) { return this[i]; }; | |
148 NamedNodeMap.prototype.get = function(i) { return this[i]; }; | |
149 DOMTokenList.prototype.get = function(i) { return this[i]; }; | |
150 HTMLCollection.prototype.get = function(i) { return this[i]; }; | |
151 | |
152 // Expose constructors for DOM types dart:html needs to assume are | |
153 // available on window. | |
154 if (typeof PannerNode == "undefined") { | |
155 let audioContext; | |
156 if (typeof AudioContext == "undefined" && | |
157 (typeof webkitAudioContext != "undefined")) { | |
158 audioContext = new webkitAudioContext(); | |
159 } else { | |
160 audioContext = new AudioContext(); | |
161 window.StereoPannerNode = | |
162 audioContext.createStereoPanner().constructor; | |
163 } | |
164 window.PannerNode = audioContext.createPanner().constructor; | |
165 } | |
166 if (typeof AudioSourceNode == "undefined") { | |
167 window.AudioSourceNode = MediaElementAudioSourceNode.constructor; | |
168 } | |
169 if (typeof FontFaceSet == "undefined") { | |
170 window.FontFaceSet = document.fonts.__proto__.constructor; | |
171 } | |
172 if (typeof MemoryInfo == "undefined") { | |
173 if (typeof window.performance.memory != "undefined") { | |
174 window.MemoryInfo = window.performance.memory.constructor; | |
175 } | |
176 } | |
177 if (typeof Geolocation == "undefined") { | |
178 navigator.geolocation.constructor; | |
179 } | |
180 if (typeof Animation == "undefined") { | |
181 let d = document.createElement('div'); | |
182 if (typeof d.animate != "undefined") { | |
183 window.Animation = d.animate(d).constructor; | |
184 } | |
185 } | |
186 if (typeof SourceBufferList == "undefined") { | |
187 window.SourceBufferList = new MediaSource().sourceBuffers.constructor; | |
188 } | |
189 } | |
190 | |
191 // This import is only needed for chrome debugging. We should provide an | 143 // This import is only needed for chrome debugging. We should provide an |
192 // option to compile without it. | 144 // option to compile without it. |
193 dart_sdk._debugger.registerDevtoolsFormatter(); | 145 dart_sdk._debugger.registerDevtoolsFormatter(); |
194 } | 146 } |
195 | 147 |
196 })(dart_library); | 148 })(dart_library); |
197 } | 149 } |
OLD | NEW |