| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 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 | 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 /// Includes any additional polyfills that may needed by the deployed app. | 5 /// Includes any additional polyfills that may needed by the deployed app. |
| 6 library polymer.src.build.polyfill_injector; | 6 library polymer.src.build.polyfill_injector; |
| 7 | 7 |
| 8 import 'dart:async'; | 8 import 'dart:async'; |
| 9 | 9 |
| 10 import 'package:barback/barback.dart'; | 10 import 'package:barback/barback.dart'; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 if (options.directlyIncludeJS) { | 71 if (options.directlyIncludeJS) { |
| 72 // If using CSP add the "precompiled" extension | 72 // If using CSP add the "precompiled" extension |
| 73 final csp = options.contentSecurityPolicy ? '.precompiled' : ''; | 73 final csp = options.contentSecurityPolicy ? '.precompiled' : ''; |
| 74 | 74 |
| 75 // Replace all other Dart script tags with JavaScript versions. | 75 // Replace all other Dart script tags with JavaScript versions. |
| 76 for (var script in dartScripts) { | 76 for (var script in dartScripts) { |
| 77 final src = script.attributes['src']; | 77 final src = script.attributes['src']; |
| 78 if (src.endsWith('.dart')) { | 78 if (src.endsWith('.dart')) { |
| 79 script.attributes.remove('type'); | 79 script.attributes.remove('type'); |
| 80 script.attributes['src'] = '$src$csp.js'; | 80 script.attributes['src'] = '$src$csp.js'; |
| 81 // TODO(sigmund): we shouldn't need 'async' here. Remove this |
| 82 // workaround for dartbug.com/19653. |
| 83 script.attributes['async'] = ''; |
| 81 } | 84 } |
| 82 } | 85 } |
| 83 } else { | 86 } else { |
| 84 document.body.nodes.add(parseFragment( | 87 document.body.nodes.add(parseFragment( |
| 85 '<script src="packages/browser/dart.js"></script>')); | 88 '<script src="packages/browser/dart.js"></script>')); |
| 86 } | 89 } |
| 87 | 90 |
| 88 _addScriptFirst(urlSegment) { | 91 _addScriptFirst(urlSegment) { |
| 89 document.head.nodes.insert(0, parseFragment( | 92 document.head.nodes.insert(0, parseFragment( |
| 90 '<script src="packages/$urlSegment"></script>\n')); | 93 '<script src="packages/$urlSegment"></script>\n')); |
| 91 } | 94 } |
| 92 | 95 |
| 93 var suffix = options.releaseMode ? '.js' : '.concat.js'; | 96 var suffix = options.releaseMode ? '.js' : '.concat.js'; |
| 94 if (!webComponentsFound) { | 97 if (!webComponentsFound) { |
| 95 _addScriptFirst('web_components/dart_support.js'); | 98 _addScriptFirst('web_components/dart_support.js'); |
| 96 | 99 |
| 97 // platform.js should come before all other scripts. | 100 // platform.js should come before all other scripts. |
| 98 _addScriptFirst('web_components/platform$suffix'); | 101 _addScriptFirst('web_components/platform$suffix'); |
| 99 } | 102 } |
| 100 | 103 |
| 101 transform.addOutput( | 104 transform.addOutput( |
| 102 new Asset.fromString(transform.primaryInput.id, document.outerHtml)); | 105 new Asset.fromString(transform.primaryInput.id, document.outerHtml)); |
| 103 }); | 106 }); |
| 104 } | 107 } |
| 105 } | 108 } |
| 106 | 109 |
| 107 final _webComponentsJS = new RegExp(r'platform.*\.js', | 110 final _webComponentsJS = new RegExp(r'platform.*\.js', |
| 108 caseSensitive: false); | 111 caseSensitive: false); |
| OLD | NEW |