Version 1.9.2

svn merge -c 44453 https://dart.googlecode.com/svn/branches/bleeding_edge 1.9
svn merge -c 44677 https://dart.googlecode.com/svn/branches/bleeding_edge 1.9
svn merge -c 44824 https://dart.googlecode.com/svn/branches/bleeding_edge 1.9
svn merge -c 44876 https://dart.googlecode.com/svn/branches/bleeding_edge 1.9
svn merge -c 44957 https://dart.googlecode.com/svn/branches/bleeding_edge 1.9
svn merge -c 44976 https://dart.googlecode.com/svn/branches/bleeding_edge 1.9


git-svn-id: http://dart.googlecode.com/svn/branches/1.9@45027 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
index 1ee6e57..9d4d9c1 100644
--- a/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
+++ b/pkg/compiler/lib/src/js_emitter/old_emitter/emitter.dart
@@ -1457,6 +1457,7 @@
               compiler,
               monitor: compiler.dumpInfoTask,
               allowVariableMinification: false));
+      mainOutput.add(N);
     }
 
     mainOutput.add('$parseReflectionDataName(dart)$N');
@@ -1915,6 +1916,7 @@
                   precompiledFunctionAst, compiler,
                   monitor: compiler.dumpInfoTask,
                   allowVariableMinification: false));
+          output.add(N);
         }
         output.add('$parseReflectionDataName(dart)$N');
       }
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index a0a8db4..30c891d 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -8462,6 +8462,12 @@
   }
 
   while (scan_position != length) {
+    if (snippet_start == -1) {
+      if ((line == from_line) && (column == from_column)) {
+        snippet_start = scan_position;
+      }
+    }
+
     char c = src.CharAt(scan_position);
     if (c == '\n') {
       line++;
@@ -8477,11 +8483,7 @@
     scan_position++;
     column++;
 
-    if (snippet_start == -1) {
-      if ((line == from_line) && (column == from_column)) {
-        snippet_start = scan_position;
-      }
-    } else if ((line == to_line) && (column == to_column)) {
+    if ((line == to_line) && (column == to_column)) {
       snippet_end = scan_position;
       break;
     }
diff --git a/sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart b/sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart
index 0105cbf..dfca127 100644
--- a/sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart
+++ b/sdk/lib/_internal/pub/lib/src/barback/dependency_computer.dart
@@ -75,7 +75,7 @@
           return phase.expand((config) {
             var id = config.id;
             if (id.isBuiltInTransformer) return [];
-            if (id.package != _graph.entrypoint.root.name &&
+            if (package.name != _graph.entrypoint.root.name &&
                 !config.canTransformPublicFiles) {
               return [];
             }
diff --git a/sdk/lib/_internal/pub/test/dependency_computer/dev_transformers_test.dart b/sdk/lib/_internal/pub/test/dependency_computer/dev_transformers_test.dart
index db1671c..6daa90b 100644
--- a/sdk/lib/_internal/pub/test/dependency_computer/dev_transformers_test.dart
+++ b/sdk/lib/_internal/pub/test/dependency_computer/dev_transformers_test.dart
@@ -47,6 +47,28 @@
     expectDependencies({"myapp": []});
   });
 
+  integration("does return a dependency's transformer that the root package "
+      "uses", () {
+    d.dir(appPath, [
+      d.pubspec({
+        "name": "myapp",
+        "dependencies": {"foo": {"path": "../foo"}},
+        "transformers": [{"foo": {"\$include": "test/myapp_test.dart"}}]
+      }),
+      d.dir("test", [d.file("myapp_test.dart", "")])
+    ]).create();
+
+    d.dir("foo", [
+      d.pubspec({
+        "name": "foo",
+        "version": "1.0.0"
+      }),
+      d.dir("lib", [d.file("foo.dart", transformer())])
+    ]).create();
+
+    expectDependencies({"foo": []});
+  });
+
   integration("doesn't return a dependency's transformer that can run on bin",
       () {
     d.dir(appPath, [
diff --git a/tests/lib/mirrors/method_mirror_source_other.dart b/tests/lib/mirrors/method_mirror_source_other.dart
new file mode 100644
index 0000000..29adf5b
--- /dev/null
+++ b/tests/lib/mirrors/method_mirror_source_other.dart
@@ -0,0 +1,6 @@
+main() {
+  print("Blah");
+}
+// This function must be on the first line.
+
+class SomethingInOther {}
\ No newline at end of file
diff --git a/tests/lib/mirrors/method_mirror_source_test.dart b/tests/lib/mirrors/method_mirror_source_test.dart
index d0aad92..9b09452 100644
--- a/tests/lib/mirrors/method_mirror_source_test.dart
+++ b/tests/lib/mirrors/method_mirror_source_test.dart
@@ -3,8 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import "dart:mirrors";
-
 import "package:expect/expect.dart";
+import "method_mirror_source_other.dart";
 
 expectSource(Mirror mirror, String source) {
   MethodMirror methodMirror;
@@ -14,7 +14,7 @@
     methodMirror = mirror as MethodMirror;
   }
   Expect.isTrue(methodMirror is MethodMirror);
-  Expect.equals(methodMirror.source, source);
+  Expect.equals(source, methodMirror.source);
 }
 
 foo1() {}
@@ -98,4 +98,11 @@
   var a = () {};
   expectSource(reflect(namedClosure), "namedClosure(x,y,z) => 1;");
   expectSource(reflect(a), "() {}");
+
+  // Function at first line.
+  LibraryMirror otherLib = reflectClass(SomethingInOther).owner;
+  expectSource(otherLib.declarations[#main],
+"""main() {
+  print("Blah");
+}""");
 }
diff --git a/tools/VERSION b/tools/VERSION
index 93b652d..344a8fe 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -26,6 +26,6 @@
 CHANNEL stable
 MAJOR 1
 MINOR 9
-PATCH 1
+PATCH 2
 PRERELEASE 0
 PRERELEASE_PATCH 0
diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart
index 0689ad7..99614b6 100644
--- a/tools/testing/dart/test_suite.dart
+++ b/tools/testing/dart/test_suite.dart
@@ -1465,7 +1465,6 @@
       packageRootArgument(optionsFromFile['packageRoot']);
     if (packageRoot != null) args.add(packageRoot);
     args.add('--out=$outputFile');
-    if (configuration['csp']) args.add('--csp');
     args.add(inputFile);
     List<String> options = optionsFromFile['sharedOptions'];
     if (options != null) args.addAll(options);
@@ -2216,6 +2215,9 @@
         configuration["minified"]) {
       args.add("--minify");
     }
+    if (compiler == "dart2js" && configuration["csp"]) {
+      args.add("--csp");
+    }
     if (compiler == "dartanalyzer" || compiler == "dart2analyzer") {
       args.add("--show-package-warnings");
       args.add("--enable-async");