Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: runtime/vm/object_test.cc

Issue 1157173005: Include 'fixedId' key when printing service ids (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/object.cc ('k') | runtime/vm/pages.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "platform/globals.h" 5 #include "platform/globals.h"
6 6
7 #include "vm/assembler.h" 7 #include "vm/assembler.h"
8 #include "vm/class_finalizer.h" 8 #include "vm/class_finalizer.h"
9 #include "vm/dart_api_impl.h" 9 #include "vm/dart_api_impl.h"
10 #include "vm/dart_entry.h" 10 #include "vm/dart_entry.h"
(...skipping 4296 matching lines...) Expand 10 before | Expand all | Expand 10 after
4307 char buffer[1024]; 4307 char buffer[1024];
4308 Isolate* isolate = Isolate::Current(); 4308 Isolate* isolate = Isolate::Current();
4309 4309
4310 // Class reference 4310 // Class reference
4311 { 4311 {
4312 JSONStream js; 4312 JSONStream js;
4313 Class& cls = Class::Handle(isolate->object_store()->bool_class()); 4313 Class& cls = Class::Handle(isolate->object_store()->bool_class());
4314 cls.PrintJSON(&js, true); 4314 cls.PrintJSON(&js, true);
4315 elideSubstring("classes", js.ToCString(), buffer); 4315 elideSubstring("classes", js.ToCString(), buffer);
4316 EXPECT_STREQ( 4316 EXPECT_STREQ(
4317 "{\"type\":\"@Class\",\"id\":\"\",\"name\":\"bool\"}", 4317 "{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\",\"name\":\"bool\"}",
4318 buffer); 4318 buffer);
4319 } 4319 }
4320 // Function reference 4320 // Function reference
4321 { 4321 {
4322 JSONStream js; 4322 JSONStream js;
4323 Class& cls = Class::Handle(isolate->object_store()->bool_class()); 4323 Class& cls = Class::Handle(isolate->object_store()->bool_class());
4324 const String& func_name = String::Handle(String::New("toString")); 4324 const String& func_name = String::Handle(String::New("toString"));
4325 Function& func = Function::Handle(cls.LookupFunction(func_name)); 4325 Function& func = Function::Handle(cls.LookupFunction(func_name));
4326 ASSERT(!func.IsNull()); 4326 ASSERT(!func.IsNull());
4327 func.PrintJSON(&js, true); 4327 func.PrintJSON(&js, true);
4328 elideSubstring("classes", js.ToCString(), buffer); 4328 elideSubstring("classes", js.ToCString(), buffer);
4329 EXPECT_STREQ( 4329 EXPECT_STREQ(
4330 "{\"type\":\"@Function\",\"id\":\"\",\"name\":\"toString\"," 4330 "{\"type\":\"@Function\",\"fixedId\":true,"
4331 "\"owner\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"bool\"}," 4331 "\"id\":\"\",\"name\":\"toString\","
4332 "\"owner\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4333 "\"name\":\"bool\"},"
4332 "\"kind\":\"RegularFunction\"}", 4334 "\"kind\":\"RegularFunction\"}",
4333 buffer); 4335 buffer);
4334 } 4336 }
4335 // Library reference 4337 // Library reference
4336 { 4338 {
4337 JSONStream js; 4339 JSONStream js;
4338 Library& lib = Library::Handle(isolate->object_store()->core_library()); 4340 Library& lib = Library::Handle(isolate->object_store()->core_library());
4339 lib.PrintJSON(&js, true); 4341 lib.PrintJSON(&js, true);
4340 elideSubstring("libraries", js.ToCString(), buffer); 4342 elideSubstring("libraries", js.ToCString(), buffer);
4341 EXPECT_STREQ( 4343 EXPECT_STREQ(
4342 "{\"type\":\"@Library\",\"id\":\"\",\"name\":\"dart.core\"," 4344 "{\"type\":\"@Library\",\"fixedId\":true,\"id\":\"\","
4343 "\"uri\":\"dart:core\"}", 4345 "\"name\":\"dart.core\",\"uri\":\"dart:core\"}",
4344 buffer); 4346 buffer);
4345 } 4347 }
4346 // Bool reference 4348 // Bool reference
4347 { 4349 {
4348 JSONStream js; 4350 JSONStream js;
4349 Bool::True().PrintJSON(&js, true); 4351 Bool::True().PrintJSON(&js, true);
4350 elideSubstring("classes", js.ToCString(), buffer); 4352 elideSubstring("classes", js.ToCString(), buffer);
4351 EXPECT_STREQ( 4353 EXPECT_STREQ(
4352 "{\"type\":\"@bool\"," 4354 "{\"type\":\"@bool\","
4353 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"bool\"}," 4355 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4356 "\"name\":\"bool\"},\"fixedId\":true,"
4354 "\"id\":\"objects\\/bool-true\",\"valueAsString\":\"true\"}", 4357 "\"id\":\"objects\\/bool-true\",\"valueAsString\":\"true\"}",
4355 buffer); 4358 buffer);
4356 } 4359 }
4357 // Smi reference 4360 // Smi reference
4358 { 4361 {
4359 JSONStream js; 4362 JSONStream js;
4360 const Integer& smi = Integer::Handle(Integer::New(7)); 4363 const Integer& smi = Integer::Handle(Integer::New(7));
4361 smi.PrintJSON(&js, true); 4364 smi.PrintJSON(&js, true);
4362 elideSubstring("classes", js.ToCString(), buffer); 4365 elideSubstring("classes", js.ToCString(), buffer);
4363 elideSubstring("_Smi@", buffer, buffer); 4366 elideSubstring("_Smi@", buffer, buffer);
4364 EXPECT_STREQ( 4367 EXPECT_STREQ(
4365 "{\"type\":\"@int\",\"_vmType\":\"@Smi\"," 4368 "{\"type\":\"@int\",\"_vmType\":\"@Smi\","
4366 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"_Smi\"," 4369 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4367 "\"_vmName\":\"\"}," 4370 "\"name\":\"_Smi\","
4371 "\"_vmName\":\"\"},\"fixedId\":true,"
4368 "\"id\":\"objects\\/int-7\",\"valueAsString\":\"7\"}", 4372 "\"id\":\"objects\\/int-7\",\"valueAsString\":\"7\"}",
4369 buffer); 4373 buffer);
4370 } 4374 }
4371 // Mint reference 4375 // Mint reference
4372 { 4376 {
4373 JSONStream js; 4377 JSONStream js;
4374 const Integer& smi = Integer::Handle(Integer::New(Mint::kMinValue)); 4378 const Integer& smi = Integer::Handle(Integer::New(Mint::kMinValue));
4375 smi.PrintJSON(&js, true); 4379 smi.PrintJSON(&js, true);
4376 elideSubstring("classes", js.ToCString(), buffer); 4380 elideSubstring("classes", js.ToCString(), buffer);
4377 elideSubstring("objects", buffer, buffer); 4381 elideSubstring("objects", buffer, buffer);
4378 elideSubstring("_Mint@", buffer, buffer); 4382 elideSubstring("_Mint@", buffer, buffer);
4379 EXPECT_STREQ( 4383 EXPECT_STREQ(
4380 "{\"type\":\"@int\",\"_vmType\":\"@Mint\"," 4384 "{\"type\":\"@int\",\"_vmType\":\"@Mint\","
4381 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"_Mint\"," 4385 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4382 "\"_vmName\":\"\"}," 4386 "\"name\":\"_Mint\",\"_vmName\":\"\"},"
4383 "\"id\":\"\",\"valueAsString\":\"-9223372036854775808\"}", 4387 "\"id\":\"\",\"valueAsString\":\"-9223372036854775808\"}",
4384 buffer); 4388 buffer);
4385 } 4389 }
4386 // Bigint reference 4390 // Bigint reference
4387 { 4391 {
4388 JSONStream js; 4392 JSONStream js;
4389 const String& bigint_str = 4393 const String& bigint_str =
4390 String::Handle(String::New("44444444444444444444444444444444")); 4394 String::Handle(String::New("44444444444444444444444444444444"));
4391 const Integer& bigint = Integer::Handle(Integer::New(bigint_str)); 4395 const Integer& bigint = Integer::Handle(Integer::New(bigint_str));
4392 bigint.PrintJSON(&js, true); 4396 bigint.PrintJSON(&js, true);
4393 elideSubstring("classes", js.ToCString(), buffer); 4397 elideSubstring("classes", js.ToCString(), buffer);
4394 elideSubstring("objects", buffer, buffer); 4398 elideSubstring("objects", buffer, buffer);
4395 elideSubstring("_Bigint@", buffer, buffer); 4399 elideSubstring("_Bigint@", buffer, buffer);
4396 EXPECT_STREQ( 4400 EXPECT_STREQ(
4397 "{\"type\":\"@int\",\"_vmType\":\"@Bigint\"," 4401 "{\"type\":\"@int\",\"_vmType\":\"@Bigint\","
4398 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"_Bigint\"," 4402 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4399 "\"_vmName\":\"\"}," 4403 "\"name\":\"_Bigint\",\"_vmName\":\"\"},"
4400 "\"id\":\"\",\"valueAsString\":\"44444444444444444444444444444444\"}", 4404 "\"id\":\"\",\"valueAsString\":\"44444444444444444444444444444444\"}",
4401 buffer); 4405 buffer);
4402 } 4406 }
4403 // Double reference 4407 // Double reference
4404 { 4408 {
4405 JSONStream js; 4409 JSONStream js;
4406 const Double& dub = Double::Handle(Double::New(0.1234)); 4410 const Double& dub = Double::Handle(Double::New(0.1234));
4407 dub.PrintJSON(&js, true); 4411 dub.PrintJSON(&js, true);
4408 elideSubstring("classes", js.ToCString(), buffer); 4412 elideSubstring("classes", js.ToCString(), buffer);
4409 elideSubstring("objects", buffer, buffer); 4413 elideSubstring("objects", buffer, buffer);
4410 elideSubstring("_Double@", buffer, buffer); 4414 elideSubstring("_Double@", buffer, buffer);
4411 EXPECT_STREQ( 4415 EXPECT_STREQ(
4412 "{\"type\":\"@double\"," 4416 "{\"type\":\"@double\","
4413 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"_Double\"," 4417 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4414 "\"_vmName\":\"\"}," 4418 "\"name\":\"_Double\",\"_vmName\":\"\"},"
4415 "\"id\":\"\",\"valueAsString\":\"0.1234\"}", 4419 "\"id\":\"\",\"valueAsString\":\"0.1234\"}",
4416 buffer); 4420 buffer);
4417 } 4421 }
4418 // String reference 4422 // String reference
4419 { 4423 {
4420 JSONStream js; 4424 JSONStream js;
4421 const String& str = String::Handle(String::New("dw")); 4425 const String& str = String::Handle(String::New("dw"));
4422 str.PrintJSON(&js, true); 4426 str.PrintJSON(&js, true);
4423 elideSubstring("classes", js.ToCString(), buffer); 4427 elideSubstring("classes", js.ToCString(), buffer);
4424 elideSubstring("objects", buffer, buffer); 4428 elideSubstring("objects", buffer, buffer);
4425 elideSubstring("_OneByteString@", buffer, buffer); 4429 elideSubstring("_OneByteString@", buffer, buffer);
4426 EXPECT_STREQ( 4430 EXPECT_STREQ(
4427 "{\"type\":\"@String\"," 4431 "{\"type\":\"@String\","
4428 "\"class\":{\"type\":\"@Class\",\"id\":\"\"," 4432 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4429 "\"name\":\"_OneByteString\",\"_vmName\":\"\"}," 4433 "\"name\":\"_OneByteString\",\"_vmName\":\"\"},"
4430 "\"id\":\"\",\"valueAsString\":\"dw\"}", 4434 "\"id\":\"\",\"valueAsString\":\"dw\"}",
4431 buffer); 4435 buffer);
4432 } 4436 }
4433 // Array reference 4437 // Array reference
4434 { 4438 {
4435 JSONStream js; 4439 JSONStream js;
4436 const Array& array = Array::Handle(Array::New(0)); 4440 const Array& array = Array::Handle(Array::New(0));
4437 array.PrintJSON(&js, true); 4441 array.PrintJSON(&js, true);
4438 elideSubstring("classes", js.ToCString(), buffer); 4442 elideSubstring("classes", js.ToCString(), buffer);
4439 elideSubstring("objects", buffer, buffer); 4443 elideSubstring("objects", buffer, buffer);
4440 elideSubstring("_List@", buffer, buffer); 4444 elideSubstring("_List@", buffer, buffer);
4441 EXPECT_STREQ( 4445 EXPECT_STREQ(
4442 "{\"type\":\"@List\",\"_vmType\":\"@Array\"," 4446 "{\"type\":\"@List\",\"_vmType\":\"@Array\","
4443 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"_List\"," 4447 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4444 "\"_vmName\":\"\"}," 4448 "\"name\":\"_List\",\"_vmName\":\"\"},"
4445 "\"id\":\"\",\"length\":0}", 4449 "\"id\":\"\",\"length\":0}",
4446 buffer); 4450 buffer);
4447 } 4451 }
4448 // GrowableObjectArray reference 4452 // GrowableObjectArray reference
4449 { 4453 {
4450 JSONStream js; 4454 JSONStream js;
4451 const GrowableObjectArray& array = 4455 const GrowableObjectArray& array =
4452 GrowableObjectArray::Handle(GrowableObjectArray::New()); 4456 GrowableObjectArray::Handle(GrowableObjectArray::New());
4453 array.PrintJSON(&js, true); 4457 array.PrintJSON(&js, true);
4454 elideSubstring("classes", js.ToCString(), buffer); 4458 elideSubstring("classes", js.ToCString(), buffer);
4455 elideSubstring("objects", buffer, buffer); 4459 elideSubstring("objects", buffer, buffer);
4456 elideSubstring("_GrowableList@", buffer, buffer); 4460 elideSubstring("_GrowableList@", buffer, buffer);
4457 EXPECT_STREQ( 4461 EXPECT_STREQ(
4458 "{\"type\":\"@List\",\"_vmType\":\"@GrowableObjectArray\"," 4462 "{\"type\":\"@List\",\"_vmType\":\"@GrowableObjectArray\","
4459 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"_GrowableList\"," 4463 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4464 "\"name\":\"_GrowableList\","
4460 "\"_vmName\":\"\"},\"id\":\"\",\"length\":0}", 4465 "\"_vmName\":\"\"},\"id\":\"\",\"length\":0}",
4461 buffer); 4466 buffer);
4462 } 4467 }
4463 // LinkedHashMap reference 4468 // LinkedHashMap reference
4464 { 4469 {
4465 JSONStream js; 4470 JSONStream js;
4466 const LinkedHashMap& array = LinkedHashMap::Handle(LinkedHashMap::New()); 4471 const LinkedHashMap& array = LinkedHashMap::Handle(LinkedHashMap::New());
4467 array.PrintJSON(&js, true); 4472 array.PrintJSON(&js, true);
4468 elideSubstring("classes", js.ToCString(), buffer); 4473 elideSubstring("classes", js.ToCString(), buffer);
4469 elideSubstring("objects", buffer, buffer); 4474 elideSubstring("objects", buffer, buffer);
4470 elideSubstring("_InternalLinkedHashMap@", buffer, buffer); 4475 elideSubstring("_InternalLinkedHashMap@", buffer, buffer);
4471 EXPECT_STREQ( 4476 EXPECT_STREQ(
4472 "{\"type\":\"@Instance\",\"_vmType\":\"@LinkedHashMap\"," 4477 "{\"type\":\"@Instance\",\"_vmType\":\"@LinkedHashMap\","
4473 "\"class\":{\"type\":\"@Class\",\"id\":\"\"," 4478 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4474 "\"name\":\"_InternalLinkedHashMap\",\"_vmName\":\"\"},\"id\":\"\"}", 4479 "\"name\":\"_InternalLinkedHashMap\",\"_vmName\":\"\"},\"id\":\"\"}",
4475 buffer); 4480 buffer);
4476 } 4481 }
4477 // UserTag reference 4482 // UserTag reference
4478 { 4483 {
4479 JSONStream js; 4484 JSONStream js;
4480 Instance& tag = Instance::Handle(isolate->default_tag()); 4485 Instance& tag = Instance::Handle(isolate->default_tag());
4481 tag.PrintJSON(&js, true); 4486 tag.PrintJSON(&js, true);
4482 elideSubstring("classes", js.ToCString(), buffer); 4487 elideSubstring("classes", js.ToCString(), buffer);
4483 elideSubstring("objects", buffer, buffer); 4488 elideSubstring("objects", buffer, buffer);
4484 elideSubstring("_UserTag@", buffer, buffer); 4489 elideSubstring("_UserTag@", buffer, buffer);
4485 EXPECT_STREQ( 4490 EXPECT_STREQ(
4486 "{\"type\":\"@Instance\",\"_vmType\":\"@UserTag\"," 4491 "{\"type\":\"@Instance\",\"_vmType\":\"@UserTag\","
4487 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"_UserTag\"," 4492 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4488 "\"_vmName\":\"\"}," 4493 "\"name\":\"_UserTag\",\"_vmName\":\"\"},"
4489 "\"id\":\"\"}", 4494 "\"id\":\"\"}",
4490 buffer); 4495 buffer);
4491 } 4496 }
4492 // Type reference 4497 // Type reference
4493 // TODO(turnidge): Add in all of the other Type siblings. 4498 // TODO(turnidge): Add in all of the other Type siblings.
4494 { 4499 {
4495 JSONStream js; 4500 JSONStream js;
4496 Instance& type = Instance::Handle(isolate->object_store()->bool_type()); 4501 Instance& type = Instance::Handle(isolate->object_store()->bool_type());
4497 type.PrintJSON(&js, true); 4502 type.PrintJSON(&js, true);
4498 elideSubstring("classes", js.ToCString(), buffer); 4503 elideSubstring("classes", js.ToCString(), buffer);
4499 elideSubstring("objects", buffer, buffer); 4504 elideSubstring("objects", buffer, buffer);
4500 elideSubstring("_Type@", buffer, buffer); 4505 elideSubstring("_Type@", buffer, buffer);
4501 EXPECT_STREQ( 4506 EXPECT_STREQ(
4502 "{\"type\":\"@Type\"," 4507 "{\"type\":\"@Type\","
4503 "\"class\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"_Type\"," 4508 "\"class\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4504 "\"_vmName\":\"\"},\"id\":\"\"," 4509 "\"name\":\"_Type\",\"_vmName\":\"\"},\"fixedId\":true,\"id\":\"\","
4505 "\"typeClass\":{\"type\":\"@Class\",\"id\":\"\",\"name\":\"bool\"}," 4510 "\"typeClass\":{\"type\":\"@Class\",\"fixedId\":true,\"id\":\"\","
4506 "\"name\":\"bool\"}", 4511 "\"name\":\"bool\"},\"name\":\"bool\"}",
4507 buffer); 4512 buffer);
4508 } 4513 }
4509 // Null reference 4514 // Null reference
4510 { 4515 {
4511 JSONStream js; 4516 JSONStream js;
4512 Object::null_object().PrintJSON(&js, true); 4517 Object::null_object().PrintJSON(&js, true);
4513 EXPECT_STREQ( 4518 EXPECT_STREQ(
4514 "{\"type\":\"@null\",\"id\":\"objects\\/null\"," 4519 "{\"type\":\"@null\",\"fixedId\":true,"
4520 "\"id\":\"objects\\/null\","
4515 "\"valueAsString\":\"null\"}", 4521 "\"valueAsString\":\"null\"}",
4516 js.ToCString()); 4522 js.ToCString());
4517 } 4523 }
4518 // Sentinel reference 4524 // Sentinel reference
4519 { 4525 {
4520 JSONStream js; 4526 JSONStream js;
4521 Object::sentinel().PrintJSON(&js, true); 4527 Object::sentinel().PrintJSON(&js, true);
4522 EXPECT_STREQ( 4528 EXPECT_STREQ(
4523 "{\"type\":\"Sentinel\",\"id\":\"objects\\/not-initialized\"," 4529 "{\"type\":\"Sentinel\",\"fixedId\":true,"
4530 "\"id\":\"objects\\/not-initialized\","
4524 "\"valueAsString\":\"<not initialized>\"}", 4531 "\"valueAsString\":\"<not initialized>\"}",
4525 js.ToCString()); 4532 js.ToCString());
4526 } 4533 }
4527 // Transition sentinel reference 4534 // Transition sentinel reference
4528 { 4535 {
4529 JSONStream js; 4536 JSONStream js;
4530 Object::transition_sentinel().PrintJSON(&js, true); 4537 Object::transition_sentinel().PrintJSON(&js, true);
4531 EXPECT_STREQ( 4538 EXPECT_STREQ(
4532 "{\"type\":\"Sentinel\",\"id\":\"objects\\/being-initialized\"," 4539 "{\"type\":\"Sentinel\",\"fixedId\":true,"
4540 "\"id\":\"objects\\/being-initialized\","
4533 "\"valueAsString\":\"<being initialized>\"}", 4541 "\"valueAsString\":\"<being initialized>\"}",
4534 js.ToCString()); 4542 js.ToCString());
4535 } 4543 }
4536 // LiteralToken reference. This is meant to be an example of a 4544 // LiteralToken reference. This is meant to be an example of a
4537 // "weird" type that isn't usually returned by the VM Service except 4545 // "weird" type that isn't usually returned by the VM Service except
4538 // when we are doing direct heap inspection. 4546 // when we are doing direct heap inspection.
4539 { 4547 {
4540 JSONStream js; 4548 JSONStream js;
4541 LiteralToken& tok = LiteralToken::Handle(LiteralToken::New()); 4549 LiteralToken& tok = LiteralToken::Handle(LiteralToken::New());
4542 tok.PrintJSON(&js, true); 4550 tok.PrintJSON(&js, true);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
4593 EXPECT_VALID(h_result); 4601 EXPECT_VALID(h_result);
4594 Integer& result = Integer::Handle(); 4602 Integer& result = Integer::Handle();
4595 result ^= Api::UnwrapHandle(h_result); 4603 result ^= Api::UnwrapHandle(h_result);
4596 String& foo = String::Handle(String::New("foo")); 4604 String& foo = String::Handle(String::New("foo"));
4597 Integer& expected = Integer::Handle(); 4605 Integer& expected = Integer::Handle();
4598 expected ^= foo.HashCode(); 4606 expected ^= foo.HashCode();
4599 EXPECT(result.IsIdenticalTo(expected)); 4607 EXPECT(result.IsIdenticalTo(expected));
4600 } 4608 }
4601 4609
4602 } // namespace dart 4610 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/object.cc ('k') | runtime/vm/pages.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698