fix: updates for Dart2 constants
diff --git a/.travis.yml b/.travis.yml
index abe4d04..8c87100 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,18 +2,12 @@
 
 dart:
   - dev
-  - stable
 
 dart_task:
   - test
   - dartanalyzer: --fatal-warnings --fatal-lints .
   - dartfmt
 
-matrix:
-  exclude:
-    - dart_task: dartfmt
-      dart: stable
-
 # Only building master means that we don't run two builds for each pull request.
 branches:
   only: [master]
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 93ca915..3e1edb1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.3
+
+* Updates for Dart 2 constants. Require at least Dart `2.0.0-dev.54`.
+
 ## 0.3.2+1
 
 * `ansi.dart`
diff --git a/lib/src/permissions.dart b/lib/src/permissions.dart
index d72afd2..4267ded 100644
--- a/lib/src/permissions.dart
+++ b/lib/src/permissions.dart
@@ -67,6 +67,6 @@
 }
 
 bool _isExecutable(FileStat stat) =>
-    stat.type == FileSystemEntityType.FILE &&
+    stat.type == FileSystemEntityType.file &&
     _FilePermissionRole.values.any(
         (role) => _hasPermission(stat, _FilePermission.execute, role: role));
diff --git a/lib/src/process_manager.dart b/lib/src/process_manager.dart
index 0a257a4..073105a 100644
--- a/lib/src/process_manager.dart
+++ b/lib/src/process_manager.dart
@@ -71,7 +71,7 @@
     Map<String, String> environment,
     bool includeParentEnvironment: true,
     bool runInShell: false,
-    io.ProcessStartMode mode: io.ProcessStartMode.NORMAL,
+    io.ProcessStartMode mode: io.ProcessStartMode.normal,
   }) async {
     final process = io.Process.start(
       executable,
@@ -99,7 +99,7 @@
     Map<String, String> environment,
     bool includeParentEnvironment: true,
     bool runInShell: false,
-    io.ProcessStartMode mode: io.ProcessStartMode.NORMAL,
+    io.ProcessStartMode mode: io.ProcessStartMode.normal,
   }) async {
     final process = io.Process.start(
       executable,
@@ -130,7 +130,7 @@
     Map<String, String> environment,
     bool includeParentEnvironment: true,
     bool runInShell: false,
-    io.ProcessStartMode mode: io.ProcessStartMode.NORMAL,
+    io.ProcessStartMode mode: io.ProcessStartMode.normal,
   }) async {
     return io.Process.start(
       executable,
@@ -159,7 +159,7 @@
   void _onClosed() {}
 
   @override
-  bool kill([io.ProcessSignal signal = io.ProcessSignal.SIGTERM]) =>
+  bool kill([io.ProcessSignal signal = io.ProcessSignal.sigterm]) =>
       _delegate.kill(signal);
 
   @override
diff --git a/lib/src/shared_stdin.dart b/lib/src/shared_stdin.dart
index 23b3d50..bd71027 100644
--- a/lib/src/shared_stdin.dart
+++ b/lib/src/shared_stdin.dart
@@ -36,7 +36,7 @@
   /// Returns a future that completes with the next line.
   ///
   /// This is similar to the standard [Stdin.readLineSync], but asynchronous.
-  Future<String> nextLine({Encoding encoding: SYSTEM_ENCODING}) {
+  Future<String> nextLine({Encoding encoding: systemEncoding}) {
     return lines(encoding: encoding).first;
   }
 
@@ -51,8 +51,8 @@
   /// ```
   ///
   /// ... but asynchronous.
-  Stream<String> lines({Encoding encoding: SYSTEM_ENCODING}) {
-    return transform(UTF8.decoder).transform(const LineSplitter());
+  Stream<String> lines({Encoding encoding: systemEncoding}) {
+    return transform(utf8.decoder).transform(const LineSplitter());
   }
 
   void _onInput(List<int> event) => _getCurrent().add(event);
diff --git a/pubspec.yaml b/pubspec.yaml
index 7be2de4..6c689c4 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -6,7 +6,7 @@
 homepage: https://github.com/dart-lang/io
 
 environment:
-  sdk: ">=1.22.0 <2.0.0"
+  sdk: ">=2.0.0-dev.54 <2.0.0"
 
 dependencies:
   charcode: ^1.0.0
diff --git a/test/process_manager_test.dart b/test/process_manager_test.dart
index 51fb521..c80d5e7 100644
--- a/test/process_manager_test.dart
+++ b/test/process_manager_test.dart
@@ -35,10 +35,10 @@
       stderrLog = <String>[];
 
       final stdoutController = new StreamController<List<int>>(sync: true);
-      stdoutController.stream.map(UTF8.decode).listen(stdoutLog.add);
+      stdoutController.stream.map(utf8.decode).listen(stdoutLog.add);
       final stdout = new IOSink(stdoutController);
       final stderrController = new StreamController<List<int>>(sync: true);
-      stderrController.stream.map(UTF8.decode).listen(stderrLog.add);
+      stderrController.stream.map(utf8.decode).listen(stderrLog.add);
       final stderr = new IOSink(stderrController);
 
       processManager = new ProcessManager(
@@ -82,7 +82,7 @@
           'dart',
           [p.join('test', '_files', 'stdout_hello.dart')],
         );
-        expect(await spawn.stdout.transform(UTF8.decoder).first, 'Hello');
+        expect(await spawn.stdout.transform(utf8.decoder).first, 'Hello');
       });
 
       test('.stderr is readable', () async {
@@ -90,7 +90,7 @@
           'dart',
           [p.join('test', '_files', 'stderr_hello.dart')],
         );
-        expect(await spawn.stderr.transform(UTF8.decoder).first, 'Hello');
+        expect(await spawn.stderr.transform(utf8.decoder).first, 'Hello');
       });
     });
   });
diff --git a/test/shared_stdin_test.dart b/test/shared_stdin_test.dart
index 82e833f..dea13ef 100644
--- a/test/shared_stdin_test.dart
+++ b/test/shared_stdin_test.dart
@@ -19,7 +19,7 @@
 
   test('should allow a single subscriber', () async {
     final logs = <String>[];
-    final sub = sharedStdIn.transform(UTF8.decoder).listen(logs.add);
+    final sub = sharedStdIn.transform(utf8.decoder).listen(logs.add);
     fakeStdIn.add('Hello World');
     await sub.cancel();
     expect(logs, ['Hello World']);
@@ -27,7 +27,7 @@
 
   test('should allow multiple subscribers', () async {
     final logs = <String>[];
-    final asUtf8 = sharedStdIn.transform(UTF8.decoder);
+    final asUtf8 = sharedStdIn.transform(utf8.decoder);
     var sub = asUtf8.listen(logs.add);
     fakeStdIn.add('Hello World');
     await sub.cancel();