Hi.

Thx for your answer.

I'm afraid I get : 5.333806864e-315 with step 1.
##
Object* V8::FillHeapNumberWithRandom(Object* heap_number) {
 // uint64_t random_bits = Random();
  // Make a double* from address (heap_number + sizeof(double)).
  double_int_union* r = reinterpret_cast<double_int_union*>(
      reinterpret_cast<char*>(heap_number) +
      HeapNumber::kValueOffset - kHeapObjectTag);
  // Convert 32 random bits to 0.(32 random bits) in a double
  // by computing:
  // ( 1.(20 0s)(32 random bits) x 2^20 ) - (1.0 x 2^20)).
  const double binary_million = 1048576.0;
  r->double_value = binary_million;
  //r->uint64_t_value |=  random_bits;
  //r->double_value -= binary_million;

  return heap_number;
}
##

I try step 2 for fun, and I get 1.7422461335011523e+41.

Guillaume

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to