diff --git a/CHANGELOG.md b/CHANGELOG.md
index 22df2bd..babbdfc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,8 @@
    1:00am time. This is presumably because of DST time-shifts. We may not be
    able to correct these dates, because midnight may not exist at a transition
    date, but we can cause the strict parsing to not fail for these dates.
+ * Update tests to split VM and web number tests, since larger integers now fail
+   to compile with dart2js.
 
 ## 0.15.6
  * More upper case constant removal.
diff --git a/test/number_format_test.dart b/test/number_format_test_core.dart
similarity index 94%
rename from test/number_format_test.dart
rename to test/number_format_test_core.dart
index 62c82a3..68cb849 100644
--- a/test/number_format_test.dart
+++ b/test/number_format_test_core.dart
@@ -42,16 +42,6 @@
   "1.235": 1.2348
 };
 
-/// Test numbers that won't work in Javascript because they're too big.
-var testNumbersOnlyForTheVM = {
-  "9,000,000,000,000,000,000": 9000000000000000000,
-  "9,223,372,036,854,775,807": 9223372036854775807
-};
-
-get allTestNumbers => new Map.from(testNumbersWeCanReadBack)
-  ..addAll(testNumbersWeCannotReadBack)
-  ..addAll(inJavaScript() ? {} : testNumbersOnlyForTheVM);
-
 var testExponential = const {"1E-3": 0.001, "1E-2": 0.01, "1.23E0": 1.23};
 
 // TODO(alanknight): Test against currency, which requires generating data
@@ -65,11 +55,10 @@
   ];
 }
 
-// Pay no attention to the hint. This is here deliberately to have different
-// behavior in the Dart VM versus Javascript so we can distinguish the two.
-inJavaScript() => 1 is double;
+Map<String, num> get testNumbers => new Map.from(testNumbersWeCanReadBack)
+  ..addAll(testNumbersWeCannotReadBack);
 
-main() {
+runTests(Map<String, num> allTestNumbers) {
   // For data from a list of locales, run each locale's data as a separate
   // test so we can see exactly which ones pass or fail. The test data is
   // hard-coded as printing 123, -12.3, %12,300, -1,230% in each locale.
diff --git a/test/number_format_vm_test.dart b/test/number_format_vm_test.dart
new file mode 100644
index 0000000..4e383e9
--- /dev/null
+++ b/test/number_format_vm_test.dart
@@ -0,0 +1,21 @@
+/// Copyright (c) 2012, 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.
+
+/// Number tests for the VM - includes numbers that can only be compiled for the
+/// VM.
+@TestOn("vm")
+library number_format_vm_test;
+
+import 'package:test/test.dart';
+import 'number_format_test_core.dart' as core;
+
+/// Test numbers that won't work in Javascript because they're too big.
+var testNumbersOnlyForTheVM = {
+  "9,000,000,000,000,000,000": 9000000000000000000,
+  "9,223,372,036,854,775,807": 9223372036854775807
+};
+
+main() {
+  core.runTests(core.testNumbers..addAll(testNumbersOnlyForTheVM));
+}
diff --git a/test/number_format_web_test.dart b/test/number_format_web_test.dart
new file mode 100644
index 0000000..c626a4e
--- /dev/null
+++ b/test/number_format_web_test.dart
@@ -0,0 +1,15 @@
+/// Copyright (c) 2012, 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.
+
+/// Number format tests for the web - excludes numbers too big to compile for
+/// the web.
+@TestOn("browser")
+library number_format_web_test;
+
+import 'package:test/test.dart';
+import 'number_format_test_core.dart' as core;
+
+main() {
+  core.runTests(core.testNumbers);
+}
