In Chrome, we use empty handle to indicate error, and undefined value
is just a valid value in JavaScript.

On Mon, Sep 8, 2008 at 9:35 AM, Christian Plesner Hansen
<[EMAIL PROTECTED]> wrote:
>
> The difference is slightly subtle, and it doesn't make a difference in
> all situations.
>
> The undefined value is a value, whereas the empty handle means that
> there was no value.  For instance, if a property handler returns
> v8::Undefined() then that means that there was a property and the
> value of that property was v8::Undefined().  If it returns
> v8::Handle<v8::Value>() then there was no property and lookup
> continues further up the prototype chain.
>
> As a rule of thumb you should always use v8::Undefined unless you have
> good reason to return an empty handle since the vm may handle empty
> handles subtly differently, and if it really does just convert it to
> undefined then writing it explicitly is clearer.
>
> On Sun, Sep 7, 2008 at 11:32 PM, Bryan White <[EMAIL PROTECTED]> wrote:
>>
>> In poking around in process.cc I have noticed that two different
>> expressions are used to return nothing:
>>
>>        return v8::Undefined();
>>
>>        return v8::Handle<v8::Value>();
>>
>> The second form, while more verbose, looks more efficient because the
>> constructor is inlined and trivial.
>>
>> v8::Undefined() returns a Handle<Primitive>
>> Its implementation looks more complex.
>>
>> It there any reason to use v8::Undefined()?
>>
>> --
>> Bryan White
>>
>> >
>>
>
> >
>

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

Reply via email to