Hi Vlad,

It is consistent with what ECMA 262 defines as consistent ;-)

If you compare sections 9.2 ToBoolean and 9.3 ToNumber you will notice that
ToBoolean(v) just returns true if v is Object, but ToNumber(v) returns
ToNumber(ToPrimitive(v, hint Number)) if v is Object. So ToNumber(new
Number(777)) actually ends up calling Number.prototype.valueOf which in turn
gets 777 from inside number object and returns it.

--
Vyacheslav Egorov


On Wed, Jun 9, 2010 at 12:09 AM, vlad vladbph <[email protected]> wrote:

> ...one thing though. it is not consistent with Number() then. Same example:
> v = new Number(777);
>
> would give right value when
> v8::Handle<v8::Value> v = g->Get(v8::String::New("v"));
>
> v->ToNumber()->Value() // == 777
>
> ...
>
> On Tue, Jun 8, 2010 at 3:06 PM, vlad vladbph <[email protected]> wrote:
>
>> Thank you, that helps!
>>
>>
>> On Tue, Jun 8, 2010 at 3:03 PM, Aaron Boodman <[email protected]> wrote:
>>
>>> In JavaScript, you would use the valueOf() method: new
>>> Boolean(false).valueOf() => false. You can do that from v8 too, by
>>> casting your value to an Object, then finding its "valueOf" method,
>>> then calling it. It's a little bit laborious but I can't see any other
>>> way.
>>>
>>> On Tue, Jun 8, 2010 at 2:54 PM, vlad <[email protected]> wrote:
>>> > Thank you Aaron, but how to get to the actual value in v8?
>>> >
>>> > On Jun 8, 2:46 pm, Aaron Boodman <[email protected]> wrote:
>>> >> On Tue, Jun 8, 2010 at 11:13 AM, Aaron Boodman <[email protected]>
>>> wrote:
>>> >> > On Tue, Jun 8, 2010 at 11:09 AM, vlad <[email protected]> wrote:
>>> >> >> "any = new Boolean(false);"
>>> >>
>>> >> > Not a bug. This is a classic javascript thing. Try this in
>>> JavaScript
>>> >> > (no v8 required):
>>> >>
>>> >> > var foo = new Boolean(false);
>>> >> > alert(foo == true);  // says "false"
>>> >>
>>> >> > The problem is that:
>>> >>
>>> >> > alert(typeof foo);  // says "object", not "boolean"
>>> >>
>>> >> > - a
>>> >
>>> > --
>>> > v8-users mailing list
>>> > [email protected]
>>> > http://groups.google.com/group/v8-users
>>> >
>>>
>>> --
>>> v8-users mailing list
>>> [email protected]
>>> http://groups.google.com/group/v8-users
>>>
>>
>>
>  --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
>

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

Reply via email to