anchor.diff:            null, <HInstruction>[thenInstruction, elseInstruction]);
         builder.current.addPhi(phi);
         builder.stack.add(phi);
  -    }
  -    if (isRedirecting) {
  -      // The parser creates a return node if there is no string literal
  -      // after the native keyword. In case of a redirecting method, there
  -      // is a string literal, therefore we must emit a return instruction
  -      // in the builder.
  -      builder.push(new HReturn(builder.pop()));
       }
     } else {
       // This is JS code written in a Dart file with the construct
  
positive.code:   return token;
  }
  
  Token handleNativeFunctionBody(ElementListener listener, Token token) {
    checkAllowedLibrary(listener, token);
    Token begin = token;
  
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);
  