Version 2.18.0-109.0.dev

Merge commit '28e8202c1408c3dc066cc5c93b10026b17b75095' into 'dev'
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 10a7ae0..454d0ba 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -28,6 +28,10 @@
 - fixes `unnecessary_null_checks` to properly handle map
   literal entries.
 
+#### Pub
+
+* `dart pub outdated` now shows which of your dependencies are discontinued.
+
 ## 2.17.0
 
 ### Language
diff --git a/DEPS b/DEPS
index 75ce990..3a6aaa8 100644
--- a/DEPS
+++ b/DEPS
@@ -138,13 +138,13 @@
   "pool_rev": "7abe634002a1ba8a0928eded086062f1307ccfae",
   "process_rev": "56ece43b53b64c63ae51ec184b76bd5360c28d0b",
   "protobuf_rev": "c1eb6cb51af39ccbaa1a8e19349546586a5c8e31",
-  "pub_rev": "6068f47c264ef790e16411b31b2c94ad6beb1ab6",
+  "pub_rev": "1e3c17ea871e6a80c720aa998f37cbd3913bc287",
   "pub_semver_rev": "ea6c54019948dc03042c595ce9413e17aaf7aa38",
   "root_certificates_rev": "692f6d6488af68e0121317a9c2c9eb393eb0ee50",
   "rust_revision": "b7856f695d65a8ebc846754f97d15814bcb1c244",
   "shelf_packages_handler_rev": "78302e67c035047e6348e692b0c1182131f0fe35",
   "shelf_proxy_rev": "124615d0614b38814970aa9638725d9d6b435268",
-  "shelf_rev": "6d1f24da2f85ba221dda3cfaadb4d3fc043e8eec",
+  "shelf_rev": "78ac724a7944700340a3cef28c84bccbe62e9367",
   "shelf_static_rev": "202ec1a53c9a830c17cf3b718d089cf7eba568ad",
   "shelf_web_socket_rev": "24fb8a04befa75a94ac63a27047b231d1a22aab4",
   "source_map_stack_trace_rev": "8eabd96b1811e30a11d3c54c9b4afae4fb72e98f",
diff --git a/pkg/compiler/lib/src/js_backend/field_analysis.dart b/pkg/compiler/lib/src/js_backend/field_analysis.dart
index c35ba76..44c6a41 100644
--- a/pkg/compiler/lib/src/js_backend/field_analysis.dart
+++ b/pkg/compiler/lib/src/js_backend/field_analysis.dart
@@ -371,10 +371,7 @@
               assert(value != null);
               if (!memberUsage.hasWrite && canBeElided(kField)) {
                 isEffectivelyConstant = true;
-              } else if (value is NullConstantValue ||
-                  value is IntConstantValue ||
-                  value is BoolConstantValue ||
-                  value is StringConstantValue ||
+              } else if (value is PrimitiveConstantValue ||
                   value is LateSentinelConstantValue) {
                 // TODO(johnniwinther,sra): Support non-primitive constants in
                 // allocators when it does cause allocators to deoptimized
diff --git a/pkg/compiler/pubspec.yaml b/pkg/compiler/pubspec.yaml
index d2e8bbb..cb44cf3 100644
--- a/pkg/compiler/pubspec.yaml
+++ b/pkg/compiler/pubspec.yaml
@@ -98,9 +98,9 @@
   protobuf:
     path: ../../third_party/pkg/protobuf/protobuf
   shelf:
-    path: ../../third_party/pkg/shelf/pkgs/shelf
+    path: ../../third_party/pkg/shelf
   shelf_static:
-    path: ../../third_party/pkg/shelf/pkgs/shelf_static
+    path: ../../third_party/pkg/shelf_static
   source_span:
     path: ../../third_party/pkg/source_span
   stack_trace:
diff --git a/pkg/compiler/test/field_analysis/jdata/marker.options b/pkg/compiler/test/field_analysis/jdata/marker.options
index c5938f0..04a69cf 100644
--- a/pkg/compiler/test/field_analysis/jdata/marker.options
+++ b/pkg/compiler/test/field_analysis/jdata/marker.options
@@ -1,2 +1 @@
 spec=pkg/compiler/test/field_analysis/jfield_analysis_test.dart
-prod=pkg/compiler/test/field_analysis/jfield_analysis_test.dart
diff --git a/pkg/compiler/test/field_analysis/jdata/simple_initializers.dart b/pkg/compiler/test/field_analysis/jdata/simple_initializers.dart
index 94daff8..be2902a 100644
--- a/pkg/compiler/test/field_analysis/jdata/simple_initializers.dart
+++ b/pkg/compiler/test/field_analysis/jdata/simple_initializers.dart
@@ -166,7 +166,10 @@
   /*member: Class1.field7b:constant=StringConstant("foo")*/
   var field7b = 'foo';
 
-  /*member: Class1.field8a:initial=DoubleConstant(0.5)*/
+  /*member: Class1.field8a:
+   allocator,
+   initial=DoubleConstant(0.5)
+  */
   var field8a = 0.5;
 
   /*member: Class1.field8b:constant=DoubleConstant(0.5)*/
@@ -178,10 +181,10 @@
   /*member: Class1.field9b:constant=ListConstant([])*/
   var field9b = const [];
 
-  /*spec.member: Class1.field9c:initial=ListConstant(<int*>[IntConstant(0), IntConstant(1)])*/
+  /*member: Class1.field9c:initial=ListConstant(<int*>[IntConstant(0), IntConstant(1)])*/
   var field9c = const [0, 1];
 
-  /*spec.member: Class1.field9d:constant=ListConstant(<int*>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
+  /*member: Class1.field9d:constant=ListConstant(<int*>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
   var field9d = const [0, 1, 2];
 
   /*member: Class1.field10a:initial=MapConstant({})*/
@@ -190,10 +193,10 @@
   /*member: Class1.field10b:constant=MapConstant({})*/
   var field10b = const {};
 
-  /*spec.member: Class1.field10c:initial=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
+  /*member: Class1.field10c:initial=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
   var field10c = const {0: 1, 2: 3};
 
-  /*spec.member: Class1.field10d:constant=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
+  /*member: Class1.field10d:constant=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
   var field10d = const {0: 1, 2: 3, 4: 5};
 
   /*member: Class1.field11a:initial=ConstructedConstant(Symbol(_name=StringConstant("foo")))*/
@@ -258,7 +261,10 @@
   /*member: Class2.field7b:constant=StringConstant("foo")*/
   var field7b;
 
-  /*member: Class2.field8a:initial=DoubleConstant(0.5)*/
+  /*member: Class2.field8a:
+   allocator,
+   initial=DoubleConstant(0.5)
+  */
   var field8a;
 
   /*member: Class2.field8b:constant=DoubleConstant(0.5)*/
@@ -270,10 +276,10 @@
   /*member: Class2.field9b:constant=ListConstant([])*/
   var field9b;
 
-  /*spec.member: Class2.field9c:initial=ListConstant(<int*>[IntConstant(0), IntConstant(1)])*/
+  /*member: Class2.field9c:initial=ListConstant(<int*>[IntConstant(0), IntConstant(1)])*/
   var field9c;
 
-  /*spec.member: Class2.field9d:constant=ListConstant(<int*>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
+  /*member: Class2.field9d:constant=ListConstant(<int*>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
   var field9d;
 
   /*member: Class2.field10a:initial=MapConstant({})*/
@@ -282,10 +288,10 @@
   /*member: Class2.field10b:constant=MapConstant({})*/
   var field10b;
 
-  /*spec.member: Class2.field10c:initial=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
+  /*member: Class2.field10c:initial=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
   var field10c;
 
-  /*spec.member: Class2.field10d:constant=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
+  /*member: Class2.field10d:constant=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
   var field10d;
 
   /*member: Class2.field11a:initial=ConstructedConstant(Symbol(_name=StringConstant("foo")))*/
diff --git a/pkg/compiler/test/field_analysis/kdata/marker.options b/pkg/compiler/test/field_analysis/kdata/marker.options
index 495daf6..0cfee70 100644
--- a/pkg/compiler/test/field_analysis/kdata/marker.options
+++ b/pkg/compiler/test/field_analysis/kdata/marker.options
@@ -1,2 +1 @@
 spec=pkg/compiler/test/field_analysis/kfield_analysis_test.dart
-prod=pkg/compiler/test/field_analysis/kfield_analysis_test.dart
diff --git a/pkg/dev_compiler/pubspec.yaml b/pkg/dev_compiler/pubspec.yaml
index 9ff430c..90c1a69 100644
--- a/pkg/dev_compiler/pubspec.yaml
+++ b/pkg/dev_compiler/pubspec.yaml
@@ -52,6 +52,6 @@
   meta:
     path: ../meta
   shelf:
-    path: ../../third_party/pkg/shelf/pkgs/shelf
+    path: ../../third_party/pkg/shelf
   http_multi_server:
     path: ../../third_party/pkg/http_multi_server
diff --git a/tools/VERSION b/tools/VERSION
index bae5fe4..aa824e2 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 18
 PATCH 0
-PRERELEASE 108
+PRERELEASE 109
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/generate_package_config.dart b/tools/generate_package_config.dart
index 3553d41..150f06f 100644
--- a/tools/generate_package_config.dart
+++ b/tools/generate_package_config.dart
@@ -20,7 +20,6 @@
     ...listSubdirectories(platform('third_party/pkg')),
     ...listSubdirectories(platform('third_party/pkg/file/packages')),
     ...listSubdirectories(platform('third_party/pkg/test/pkgs')),
-    ...listSubdirectories(platform('third_party/pkg/shelf/pkgs')),
     platform('pkg/vm_service/test/test_package'),
     platform('runtime/observatory_2'),
     platform(
@@ -37,12 +36,6 @@
   // Remove the package at the top-level of the package:file monorepo.
   packageDirs.remove(platform('third_party/pkg/file'));
 
-  // Temporarily ignored copies of shelf mono repo package
-  packageDirs.remove(platform('third_party/pkg/shelf_packages_handler'));
-  packageDirs.remove(platform('third_party/pkg/shelf_proxy'));
-  packageDirs.remove(platform('third_party/pkg/shelf_static'));
-  packageDirs.remove(platform('third_party/pkg/shelf_web_socket'));
-
   var cfePackageDirs = [
     platform('pkg/front_end/testcases'),
   ];