| Index: sdk/lib/js/dartium/js_dartium.dart
|
| diff --git a/sdk/lib/js/dartium/js_dartium.dart b/sdk/lib/js/dartium/js_dartium.dart
|
| index 0d964257af0a2cf5af244cc90e5ea37edc875710..97e927ebffab4c9e3b9326f638f37914f9f59c82 100644
|
| --- a/sdk/lib/js/dartium/js_dartium.dart
|
| +++ b/sdk/lib/js/dartium/js_dartium.dart
|
| @@ -282,48 +282,6 @@ void _registerJsInterfaces(List<Type> classes) {
|
|
|
| _finalizeJsInterfaces() native "Js_finalizeJsInterfaces";
|
|
|
| -// Create the files for the generated Dart files from IDLs. These only change
|
| -// when browser's Dart files change (dart:*).
|
| -@Deprecated("Internal Use Only")
|
| -String createCachedPatchesFile() {
|
| - var patches = _generateInteropPatchFiles(['dart:html',
|
| - 'dart:indexed_db',
|
| - 'dart:web_gl',
|
| - 'dart:web_sql',
|
| - 'dart:svg',
|
| - 'dart:web_audio']);
|
| - var sb = new StringBuffer();
|
| -
|
| - sb.write("""
|
| -
|
| -// START_OF_CACHED_PATCHES
|
| -// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -// DO NOT EDIT GENERATED FILE.
|
| -
|
| -library cached_patches;
|
| -
|
| -var cached_patches = {""");
|
| -
|
| - for (var baseIndex = 0; baseIndex < patches.length; baseIndex += 3) {
|
| - var uri = patches[baseIndex + 0];
|
| - var uri_js_interop = patches[baseIndex + 1];
|
| - var source = patches[baseIndex + 2];
|
| -
|
| - if (uri != 'dart:js') {
|
| - sb.write('"$uri": ["$uri", "$uri_js_interop", """$source"""],');
|
| - }
|
| - }
|
| -
|
| - sb.write("""};
|
| -// END_OF_CACHED_PATCHES
|
| - """);
|
| -
|
| - return "$sb";
|
| -}
|
| -
|
| String _getJsName(mirrors.DeclarationMirror mirror) {
|
| if (_atJsType != null) {
|
| for (var annotation in mirror.metadata) {
|
| @@ -499,19 +457,23 @@ bool _isExternal(mirrors.MethodMirror mirror) {
|
| return false;
|
| }
|
|
|
| -List<String> _generateExternalMethods(List<String> libraryPaths) {
|
| +List<String> _generateExternalMethods(List<String> libraryPaths, bool useCachedPatches) {
|
| var staticCodegen = <String>[];
|
|
|
| if (libraryPaths.length == 0) {
|
| mirrors.currentMirrorSystem().libraries.forEach((uri, library) {
|
| var library_name = "${uri.scheme}:${uri.path}";
|
| - if (cached_patches.containsKey(library_name)) {
|
| + if (useCachedPatches && cached_patches.containsKey(library_name)) {
|
| // Use the pre-generated patch files for DOM dart:nnnn libraries.
|
| var patch = cached_patches[library_name];
|
| staticCodegen.addAll(patch);
|
| } else if (_hasJsName(library)) {
|
| // Library marked with @JS
|
| _generateLibraryCodegen(uri, library, staticCodegen);
|
| + } else if (!useCachedPatches) {
|
| + // Can't use the cached patches file, instead this is a signal to generate
|
| + // the patches for this file.
|
| + _generateLibraryCodegen(uri, library, staticCodegen);
|
| }
|
| }); // End of library foreach
|
| } else {
|
| @@ -676,8 +638,11 @@ var _atJsType = -1;
|
| * Generates part files defining source code for JSObjectImpl, all DOM classes
|
| * classes. This codegen is needed so that type checks for all registered
|
| * JavaScript interop classes pass.
|
| + * If genCachedPatches is true then the patch files don't exist this is a special
|
| + * signal to generate and emit the patches to stdout to be captured and put into
|
| + * the file sdk/lib/js/dartium/cached_patches.dart
|
| */
|
| -List<String> _generateInteropPatchFiles(List<String> libraryPaths) {
|
| +List<String> _generateInteropPatchFiles(List<String> libraryPaths, genCachedPatches) {
|
| // Cache the @JS Type.
|
| if (_atJsType == -1) {
|
| var uri = new Uri(scheme: "package", path: "js/js.dart");
|
| @@ -692,7 +657,7 @@ List<String> _generateInteropPatchFiles(List<String> libraryPaths) {
|
| }
|
| }
|
|
|
| - var ret = _generateExternalMethods(libraryPaths);
|
| + var ret = _generateExternalMethods(libraryPaths, genCachedPatches ? false : true);
|
| var libraryPrefixes = new Map<mirrors.LibraryMirror, String>();
|
| var prefixNames = new Set<String>();
|
| var sb = new StringBuffer();
|
|
|