diff --git a/lib/ui/natives.dart b/lib/ui/natives.dart
index d394e86..8c5a426 100644
--- a/lib/ui/natives.dart
+++ b/lib/ui/natives.dart
@@ -17,8 +17,8 @@
 }
 
 class _Logger {
-  static void _printString(String s) native 'Logger_PrintString';
-  static void _printDebugString(String s) native 'Logger_PrintDebugString';
+  static void _printString(String/*?*/ s) native 'Logger_PrintString';
+  static void _printDebugString(String/*?*/ s) native 'Logger_PrintDebugString';
 }
 
 // If we actually run on big endian machines, we'll need to do something smarter
@@ -68,7 +68,7 @@
 /// ```
 ///
 /// This function is only effective in debug and dynamic modes, and will throw in AOT mode.
-List<int> saveCompilationTrace() {
+List<int/*!*/>/*!*/ saveCompilationTrace() {
   final dynamic result = _saveCompilationTrace();
   if (result is Error)
     throw result;
@@ -79,11 +79,11 @@
 
 void _scheduleMicrotask(void callback()) native 'ScheduleMicrotask';
 
-int _getCallbackHandle(Function closure) native 'GetCallbackHandle';
-Function _getCallbackFromHandle(int handle) native 'GetCallbackFromHandle';
+int/*?*/ _getCallbackHandle(Function closure) native 'GetCallbackHandle';
+Function/*?*/ _getCallbackFromHandle(int handle) native 'GetCallbackFromHandle';
 
 // Required for gen_snapshot to work correctly.
-int _isolateId; // ignore: unused_element
+int/*?*/ _isolateId; // ignore: unused_element
 
 @pragma('vm:entry-point')
 Function _getPrintClosure() => _print;  // ignore: unused_element
diff --git a/lib/web_ui/lib/src/ui/natives.dart b/lib/web_ui/lib/src/ui/natives.dart
index eabef43..1cdcb68 100644
--- a/lib/web_ui/lib/src/ui/natives.dart
+++ b/lib/web_ui/lib/src/ui/natives.dart
@@ -16,10 +16,10 @@
 }
 
 class _Logger {
-  static void _printString(String s) {
+  static void _printString(String/*?*/ s) {
     print(s);
   }
-  static void _printDebugString(String s) {
+  static void _printDebugString(String/*?*/ s) {
     html.window.console.error(s);
   }
 }
@@ -40,6 +40,6 @@
 /// ```
 ///
 /// This function is only effective in debug and dynamic modes, and will throw in AOT mode.
-List<int> saveCompilationTrace() {
+List<int/*!*/>/*!*/ saveCompilationTrace() {
   throw UnimplementedError();
 }
