anchor.diff:  
   		return c.future;
   	}
  +
  +	static Future sync([Map<dynamic, dynamic> options = null]) {
  +		Completer c = new Completer();
  +		CodePushApi.sync(allowInterop((result) {
  +			print('got a result from sync');
  +			print(result);
  +			if (!c.isCompleted) {
  +				c.complete(result);
  +			}
  +		}), {}, allowInterop((progress) {
  +
  +		}));
  +		return c.future;
  +	}
   }
  
positive.code: import 'package:js/js.dart';
  import 'dart:async';
  
  @JS('CodePush')
  class CodePushApi {
  	external static void notifyApplicationReady(Function success, Function error);
  	external static void restartApplication();
  
negative.code: class CodePush {
  	static Future getCurrentPackage() {
  		Completer c = new Completer();
  		CodePushApi.getCurrentPackage(allowInterop((result, [extra = null]) {
  			if (extra != null) {
  				print(extra);
  			}
  			c.complete(result);
  		}), allowInterop((error) {
  			c.completeError(error);
  