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

Unified Diff: compiler/java/com/google/dart/compiler/backend/js/JavascriptBackend.java

Issue 9479013: Remove backends. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: More clean up Created 8 years, 10 months 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 side-by-side diff with in-line comments
Download patch
Index: compiler/java/com/google/dart/compiler/backend/js/JavascriptBackend.java
diff --git a/compiler/java/com/google/dart/compiler/backend/js/JavascriptBackend.java b/compiler/java/com/google/dart/compiler/backend/js/JavascriptBackend.java
deleted file mode 100644
index c33143c38c5a61ca2b6d785ed998d6865e5e44d7..0000000000000000000000000000000000000000
--- a/compiler/java/com/google/dart/compiler/backend/js/JavascriptBackend.java
+++ /dev/null
@@ -1,181 +0,0 @@
-// Copyright (c) 2011, 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.
-
-package com.google.dart.compiler.backend.js;
-
-import com.google.common.io.CharStreams;
-import com.google.common.io.Closeables;
-import com.google.dart.compiler.DartCompilerContext;
-import com.google.dart.compiler.DartSource;
-import com.google.dart.compiler.LibrarySource;
-import com.google.dart.compiler.ast.LibraryNode;
-import com.google.dart.compiler.ast.LibraryUnit;
-import com.google.dart.compiler.backend.js.analysis.TreeShaker;
-import com.google.dart.compiler.metrics.CompilerMetrics;
-import com.google.dart.compiler.resolver.CoreTypeProvider;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Writer;
-import java.util.Collection;
-
-/**
- * A compiler backend that produces raw Javascript.
- */
-public class JavascriptBackend extends AbstractJsBackend {
-
- public static final String EXTENSION_APP_JS_COMPLETE = EXTENSION_APP_JS + ".complete";
-
- /**
- * Wraps an Appendable and keeps track of the current offset as line/columns.
- */
- static class CountingAppendable implements Appendable {
-
- private int line = 0;
- private int column = 0;
- private Appendable out;
- private long charCount = 0;
-
- CountingAppendable(Appendable out) {
- this.out = out;
- }
-
- @Override
- public Appendable append(CharSequence csq) throws IOException {
- incCount(csq, 0, csq.length());
- return out.append(csq);
- }
-
- @Override
- public Appendable append(char c) throws IOException {
- incCount(c);
- return out.append(c);
- }
-
- @Override
- public Appendable append(CharSequence csq, int start, int end)
- throws IOException {
- incCount(csq, start, end);
- return out.append(csq, start, end);
- }
-
- private void incCount(CharSequence cs, int start, int end) {
- for (int i = 0; i < cs.length(); i++) {
- incCount(cs.charAt(i));
- }
- }
-
- private void incCount(char c) {
- ++charCount;
- if (c == '\n') {
- line++;
- column = 0;
- } else {
- column++;
- }
- }
- }
-
- private static class DepsWritingCallback implements DepsCallback {
- private final DartCompilerContext context;
- private CountingAppendable out;
- DepsWritingCallback(
- DartCompilerContext context,
- CountingAppendable out) {
- this.out = out;
- this.context = context;
- }
-
- @Override
- public void visitNative(LibraryUnit libUnit, LibraryNode node)
- throws IOException {
- DartSource nativeSrc = libUnit.getSource().getSourceFor(node.getText());
- Reader r = nativeSrc.getSourceReader();
- long charsWrittenForFile = CharStreams.copy(r, out);
- }
-
- @Override
- public void visitPart(Part part) throws IOException {
- DartSource src = part.unit.getSource();
- assert(src != null);
- Reader r = context.getArtifactReader(src, part.part, EXTENSION_JS);
- if (r == null) {
- return;
- }
-
- long partSize = 0;
- boolean failed = true;
- try {
- partSize = CharStreams.copy(r, out);
- failed = false;
- } finally {
- Closeables.close(r, failed);
- }
- }
-
- public long getCharsWritten() {
- return out.charCount;
- }
- }
-
- private static long packageLibs(Writer w,
- DartCompilerContext context) throws IOException {
- final CountingAppendable out = new CountingAppendable(w);
-
- DepsWritingCallback callback = new DepsWritingCallback(context, out);
- DependencyBuilder.build(context.getAppLibraryUnit(), callback);
- return callback.getCharsWritten();
- }
-
- @Override
- public void packageApp(LibrarySource app,
- Collection<LibraryUnit> libraries,
- DartCompilerContext context,
- CoreTypeProvider typeProvider)
- throws IOException {
-
- LibraryUnit appLibraryUnit = context.getAppLibraryUnit();
- boolean hasEntryPoint = appLibraryUnit.getElement().getEntryPoint() != null;
-
- String completeArtifactName = EXTENSION_APP_JS;
- if (hasEntryPoint) {
- // Apps with entry points will be reduced so we write into a different file name
- completeArtifactName = EXTENSION_APP_JS_COMPLETE;
- }
-
- Writer out = context.getArtifactWriter(app, "", completeArtifactName);
- long outputFileSize = 0;
- boolean failed = true;
- try {
- // Emit the concatenated Javascript sources in dependency order.
- outputFileSize = packageLibs(out, context);
- outputFileSize += writeEntryPointCall(getMangledEntryPoint(context), out);
- failed = false;
- } finally {
- Closeables.close(out, failed);
- }
-
-
- if (hasEntryPoint) {
- Writer artifactWriter = context.getArtifactWriter(app, "", EXTENSION_APP_JS);
- try {
- failed = true;
- outputFileSize = TreeShaker.reduce(app, context, completeArtifactName, artifactWriter);
- failed = false;
- } finally {
- Closeables.close(artifactWriter, failed);
- }
- }
-
- CompilerMetrics compilerMetrics = context.getCompilerMetrics();
- if (compilerMetrics != null) {
- compilerMetrics.packagedJsApplication(outputFileSize, -1);
- }
- }
-
- @Override
- public String getAppExtension() {
- return EXTENSION_APP_JS;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698