| Index: vm/snapshot_test.cc
 | 
| ===================================================================
 | 
| --- vm/snapshot_test.cc	(revision 9536)
 | 
| +++ vm/snapshot_test.cc	(working copy)
 | 
| @@ -749,21 +749,31 @@
 | 
|    serialized_script ^= reader.ReadObject();
 | 
|  
 | 
|    // Check if the serialized script object matches the original script.
 | 
| +  String& expected_literal = String::Handle();
 | 
| +  String& actual_literal = String::Handle();
 | 
|    String& str = String::Handle();
 | 
|    str ^= serialized_script.url();
 | 
|    EXPECT(url.Equals(str));
 | 
| +
 | 
|    const TokenStream& expected_tokens = TokenStream::Handle(script.tokens());
 | 
|    const TokenStream& serialized_tokens =
 | 
|        TokenStream::Handle(serialized_script.tokens());
 | 
|    EXPECT_EQ(expected_tokens.Length(), serialized_tokens.Length());
 | 
| -  String& expected_literal = String::Handle();
 | 
| -  String& actual_literal = String::Handle();
 | 
| -  for (intptr_t i = 0; i < expected_tokens.Length(); i++) {
 | 
| -    EXPECT_EQ(expected_tokens.KindAt(i), serialized_tokens.KindAt(i));
 | 
| -    expected_literal ^= expected_tokens.LiteralAt(i);
 | 
| -    actual_literal ^= serialized_tokens.LiteralAt(i);
 | 
| +  TokenStream::Iterator expected_iterator(expected_tokens, 0);
 | 
| +  TokenStream::Iterator serialized_iterator(serialized_tokens, 0);
 | 
| +  Token::Kind expected_kind = expected_iterator.CurrentTokenKind();
 | 
| +  Token::Kind serialized_kind = serialized_iterator.CurrentTokenKind();
 | 
| +  while (expected_kind != Token::kEOS && serialized_kind != Token::kEOS) {
 | 
| +    EXPECT_EQ(expected_kind, serialized_kind);
 | 
| +    expected_literal ^= expected_iterator.CurrentLiteral();
 | 
| +    actual_literal ^= serialized_iterator.CurrentLiteral();
 | 
|      EXPECT(expected_literal.Equals(actual_literal));
 | 
| +    expected_iterator.Advance();
 | 
| +    serialized_iterator.Advance();
 | 
| +    expected_kind = expected_iterator.CurrentTokenKind();
 | 
| +    serialized_kind = serialized_iterator.CurrentTokenKind();
 | 
|    }
 | 
| +
 | 
|    // Check if we are able to generate the source from the token stream.
 | 
|    // Rescan this source and compare the token stream to see if they are
 | 
|    // the same.
 | 
| @@ -772,11 +782,19 @@
 | 
|    Scanner scanner(str, dummy_key);
 | 
|    const TokenStream& reconstructed_tokens =
 | 
|        TokenStream::Handle(TokenStream::New(scanner.GetStream()));
 | 
| -  for (intptr_t i = 0; i < expected_tokens.Length(); i++) {
 | 
| -    EXPECT_EQ(expected_tokens.KindAt(i), serialized_tokens.KindAt(i));
 | 
| -    expected_literal ^= expected_tokens.LiteralAt(i);
 | 
| -    actual_literal ^= reconstructed_tokens.LiteralAt(i);
 | 
| +  expected_iterator.SetCurrentPosition(0);
 | 
| +  TokenStream::Iterator reconstructed_iterator(reconstructed_tokens, 0);
 | 
| +  expected_kind = expected_iterator.CurrentTokenKind();
 | 
| +  Token::Kind reconstructed_kind = reconstructed_iterator.CurrentTokenKind();
 | 
| +  while (expected_kind != Token::kEOS && reconstructed_kind != Token::kEOS) {
 | 
| +    EXPECT_EQ(expected_kind, reconstructed_kind);
 | 
| +    expected_literal ^= expected_iterator.CurrentLiteral();
 | 
| +    actual_literal ^= reconstructed_iterator.CurrentLiteral();
 | 
|      EXPECT(expected_literal.Equals(actual_literal));
 | 
| +    expected_iterator.Advance();
 | 
| +    reconstructed_iterator.Advance();
 | 
| +    expected_kind = expected_iterator.CurrentTokenKind();
 | 
| +    reconstructed_kind = reconstructed_iterator.CurrentTokenKind();
 | 
|    }
 | 
|  
 | 
|    free(buffer);
 | 
| 
 |