| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 part of dart2js.js_emitter; | 5 part of dart2js.js_emitter; |
| 6 | 6 |
| 7 | 7 |
| 8 class OldEmitter implements Emitter { | 8 class OldEmitter implements Emitter { |
| 9 final Compiler compiler; | 9 final Compiler compiler; |
| 10 final CodeEmitterTask task; | 10 final CodeEmitterTask task; |
| (...skipping 1654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1665 compiler.sourceMapUri, compiler.outputUri); | 1665 compiler.sourceMapUri, compiler.outputUri); |
| 1666 mainBuffer.add( | 1666 mainBuffer.add( |
| 1667 generateSourceMapTag(compiler.sourceMapUri, compiler.outputUri)); | 1667 generateSourceMapTag(compiler.sourceMapUri, compiler.outputUri)); |
| 1668 assembledCode = mainBuffer.getText(); | 1668 assembledCode = mainBuffer.getText(); |
| 1669 } | 1669 } |
| 1670 | 1670 |
| 1671 compiler.outputProvider('', 'js') | 1671 compiler.outputProvider('', 'js') |
| 1672 ..add(assembledCode) | 1672 ..add(assembledCode) |
| 1673 ..close(); | 1673 ..close(); |
| 1674 compiler.assembledCode = assembledCode; | 1674 compiler.assembledCode = assembledCode; |
| 1675 | |
| 1676 if (!compiler.useContentSecurityPolicy) { | |
| 1677 CodeBuffer cspBuffer = new CodeBuffer(); | |
| 1678 cspBuffer.add(mainBuffer); | |
| 1679 cspBuffer.write(""" | |
| 1680 { | |
| 1681 var message = | |
| 1682 'Deprecation: Automatic generation of output for Content Security\\n' + | |
| 1683 'Policy is deprecated and will be removed with the next development\\n' + | |
| 1684 'release. Use the --csp option to generate CSP restricted output.'; | |
| 1685 if (typeof dartPrint == "function") { | |
| 1686 dartPrint(message); | |
| 1687 } else if (typeof console == "object" && typeof console.log == "function") { | |
| 1688 console.log(message); | |
| 1689 } else if (typeof print == "function") { | |
| 1690 print(message); | |
| 1691 } | |
| 1692 }\n"""); | |
| 1693 | |
| 1694 cspBuffer.write( | |
| 1695 jsAst.prettyPrint( | |
| 1696 precompiledFunctionAst, compiler, | |
| 1697 allowVariableMinification: false).getText()); | |
| 1698 | |
| 1699 compiler.outputProvider('', 'precompiled.js') | |
| 1700 ..add(cspBuffer.getText()) | |
| 1701 ..close(); | |
| 1702 } | |
| 1703 } | 1675 } |
| 1704 | 1676 |
| 1705 /// Returns a map from OutputUnit to a hash of its content. The hash uniquely | 1677 /// Returns a map from OutputUnit to a hash of its content. The hash uniquely |
| 1706 /// identifies the code of the output-unit. It does not include | 1678 /// identifies the code of the output-unit. It does not include |
| 1707 /// boilerplate JS code, like the sourcemap directives or the hash | 1679 /// boilerplate JS code, like the sourcemap directives or the hash |
| 1708 /// itself. | 1680 /// itself. |
| 1709 Map<OutputUnit, String> emitDeferredOutputUnits() { | 1681 Map<OutputUnit, String> emitDeferredOutputUnits() { |
| 1710 if (!compiler.deferredLoadTask.isProgramSplit) return const {}; | 1682 if (!compiler.deferredLoadTask.isProgramSplit) return const {}; |
| 1711 | 1683 |
| 1712 Map<OutputUnit, CodeBuffer> outputBuffers = | 1684 Map<OutputUnit, CodeBuffer> outputBuffers = |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2033 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { | 2005 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { |
| 2034 if (element.isInstanceMember) { | 2006 if (element.isInstanceMember) { |
| 2035 cachedClassBuilders.remove(element.enclosingClass); | 2007 cachedClassBuilders.remove(element.enclosingClass); |
| 2036 | 2008 |
| 2037 nativeEmitter.cachedBuilders.remove(element.enclosingClass); | 2009 nativeEmitter.cachedBuilders.remove(element.enclosingClass); |
| 2038 | 2010 |
| 2039 } | 2011 } |
| 2040 } | 2012 } |
| 2041 } | 2013 } |
| 2042 } | 2014 } |
| OLD | NEW |