anchor.diff:    return token;
   }
   
  +RegExp nativeRedirectionRegExp = const RegExp(@'^[a-zA-Z][a-zA-Z_$0-9]*$');
  +
   Token handleNativeFunctionBody(ElementListener listener, Token token) {
     checkAllowedLibrary(listener, token);
     Token begin = token;
  
positive.code:     }
      LiteralString jsCode = node.arguments.head;
      String str = jsCode.dartString.slowToString();
      if (const RegExp(@'^[a-zA-Z][a-zA-Z_$0-9]*$').hasMatch(str)) {
        nativeMethodName = str;
        isRedirecting = true;
      } else {
  
negative.code:   if (token.kind === STRING_TOKEN) {
      listener.beginLiteralString(token);
      listener.endLiteralString(0);
      LiteralString str = listener.popNode();
      listener.pushNode(new NodeList.singleton(str));
      listener.endSend(token);
      token = token.next;
      // If this native method is just redirecting to another method,
      // we add a return node to match the SSA builder expactations.
      if (nativeRedirectionRegExp.hasMatch(str.dartString.slowToString())) {
        listener.endReturnStatement(true, begin, token);
      } else {
        listener.endExpressionStatement(token);
      }
    } else {
      listener.pushNode(new NodeList.empty());
      listener.endSend(token);
  