anchor.diff:  
   import 'package:args/args.dart';
   import 'package:crypto/crypto.dart';
  +import 'package:meta/meta.dart';
   import 'package:path/path.dart' as path;
   
   void main(List<String> args) async {
     var argParser = ArgParser()
       ..addFlag('verify', negatable: false)
       ..addFlag('dev', negatable: false)
  +    ..addOption('dart2js_path')
       ..addFlag('help', negatable: false);
     var argResults = argParser.parse(args);
     if (argResults['help'] == true) {
  
positive.code:   return lines.join('\n');
  }
  
  Future<void> compileWebFrontEnd({bool devMode = false}) async {
    var sdkBinDir = path.dirname(Platform.resolvedExecutable);
    var dart2jsBinary = Platform.isWindows ? 'dart2js.bat' : 'dart2js';
    var dart2jsPath = path.join(sdkBinDir, dart2jsBinary);
  
    // dart2js -m -o output source
    var process = await Process.start(dart2jsPath, [
      devMode ? '-O1' : '-m',
  
negative.code:   if (verify) {
      verifyResourcesGDartGenerated();
    } else {
      await compileWebFrontEnd(
          devMode: dev, dart2jsPath: dart2jsPath(argResults));
  
      print('');
  
      createResourcesGDart();
    }
  }
  
  /// Returns the dart2jsPath, either from [argResults] or the Platform.
  String dart2jsPath(ArgResults argResults) {
    if (argResults.wasParsed('dart2js_path')) {
      return argResults['dart2js_path'] as String;
    } else {
      var sdkBinDir = path.dirname(Platform.resolvedExecutable);
      var dart2jsBinary = Platform.isWindows ? 'dart2js.bat' : 'dart2js';
      return path.join(sdkBinDir, dart2jsBinary);
    }
  }
  
  