anchor.diff:    }
   
     static _ConsoleVariables _consoleTempVariables = new _ConsoleVariables();
  +
  +  /**
  +   * Header passed in from the Dartium Developer Tools when an expression is
  +   * evaluated in the console as opposed to the watch window or another context
  +   * that does not expect REPL support.
  +   */
  +  static const _CONSOLE_API_SUPPORT_HEADER =
  +      'with ((this && this.console && this.console._commandLineAPI) || {}) {\n';
  +
     /**
      * Takes an [expression] and a list of [local] variable and returns an
      * expression for a closure with a body matching the original expression
  
positive.code:       args[arg] = value;
      }
  
      addArg("\$var", _consoleTempVariables);
  
      for (int i = 0; i < locals.length; i+= 2) {
        addArg(locals[i], locals[i+1]);
      }
      sb..write(')=>\n$expression');
      return [sb.toString(), args.values.toList(growable: false)];
    }
  
    /**
  
negative.code:    * with the list of arguments passed to this method.
     *
     * For example:
     * <code>
     * _consoleTempVariables = {'a' : someValue, 'b': someOtherValue}
     * wrapExpressionAsClosure("${_CONSOLE_API_SUPPORT_HEADER}foo + bar + a",
     *                         ["bar", 40, "foo", 2])
     * </code>
     * will return:
     * <code>
     * ["""(final $consoleVariables, final bar, final foo, final a, final b) =>
     * (foo + bar + a
     * )""",
     * [_consoleTempVariables, 40, 2, someValue, someOtherValue]]
     * </code>
     */
    static List wrapExpressionAsClosure(String expression, List locals) {
      // FIXME: dartbug.com/10434 find a less fragile way to determine whether
      // we need to strip off console API support added by InjectedScript.
      var args = {};
      var sb = new StringBuffer("(");
      addArg(arg, value) {
  