Comment #2 on issue 585 by hapalibashi: v8::Array::Length unresolved
external symbol in r3658
http://code.google.com/p/v8/issues/detail?id=585
I had worked around, but today I looked closer.
v8.h defines (u)int32_t as (unsigned)int, whereas cstdint, Boost (C99)
define it as (unsigned)long.
To avoid the "ambiguous typedef" errors I commented out the typedefs in
v8.h, however, this led to the link problems (several symbols were missing,
I only noticed Array Length() in January).
So I changed my local definition of (u)int_32t in Boost to match V8 and it
links.
I tried changing the typedef in v8.h to use long and rebuilt but there were
warnings:
src\assembler.cc(173) : warning C4244: '=' : conversion from 'uint32_t'
to 'v8::internal::byte', possible loss of data
src\assembler.cc(193) : warning C4244: '=' : conversion from 'uint32_t'
to 'v8::internal::byte', possible loss of data
According to a Google and a quick test, long and int are both 4 bytes on
32bit and 64bit Windows, I supposed this should be safe to ignore. Is V8
out of step with its definition of (u)int32_t?
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev