Sorry, wrong address again.

On Tue, Aug 10, 2010 at 5:06 PM, Anton Muhin <[email protected]> wrote:
> Charles,
>
> I probably miss something here, but why you need FunctionTemplates at
> all, could not you use only ObjectTemplates?
>
> yours,
> anton.
>
> On Mon, Aug 9, 2010 at 10:58 PM, Charles Lowell
> <[email protected]> wrote:
>> Anton,
>>
>> Thanks for the reply. Perhaps it will make it clearer if I provide
>> some context. I'm asking in the context of The Ruby Racer, which
>> allows for embedding V8 into Ruby, and in particular what ruby classes
>> look like from javascript.
>>
>> Currently, we model ruby instances reflected into javascript as
>> instances created off of a FunctionTemplate which corresponds to that
>> instance's class. The FunctionTemplate corresponding to the ruby class
>> has property interceptors which it sets via
>> FunctionTemplate::InstanceTemplate()->Set{Named/Indexed}
>> PropertyHandler.
>>
>> The problem comes when we actually embed the ruby classes themselves
>> into javascript. This is done by having the class's FunctionTemplate's
>> CallHandler invoke the ruby constructor of the class, and then
>> associat it with a javascript instance created by calling
>> GetFunction().NewInstance(). That way, the constructor can be
>> (optionally) called directly from javascript, and the object's
>> 'constructor' will point to the right place.
>>
>> However, ruby classes (like javascript constructors) are objects too
>> with their own properties and methods and so I would like to be able
>> to intercept access to properties against the constructor function
>> itself in the same way that I intercept property access on objects. In
>> one sentence: I want to delegate Function object properties to a ruby
>> object in the same way that I delegate regular object properties to a
>> ruby object.
>>
>> Perhaps a little code would shed some light.
>>
>> class SomeClass
>>  #instance method
>>  def one
>>    1
>>  end
>> end
>>
>>  #a class method
>> def SomeClass.two
>>  2
>> end
>>
>> cxt = V8::Context.new
>> cxt['SomeClass'] = SomeClass
>> cxt.eval(<<--JS)
>> var s = new SomeClass()
>> s.one //=> 1
>> s.constructor == SomeClass //=> true
>> SomeClass.two //=> currently undefined, I would like this to invoke
>> SomeClass.two()
>> JS
>>
>> It could be that there is an obvious solution which I've missed, but
>> does that help frame the question?
>>
>> cheers,
>> Charles
>>
>>
>> On Aug 9, 11:18 am, Anton Muhin <[email protected]> wrote:
>>> Sorry, from the right address.
>>>
>>>
>>>
>>> On Mon, Aug 9, 2010 at 8:16 PM, Anton Muhin <[email protected]> wrote:
>>> > Charles, good day,
>>>
>>> > On Mon, Aug 9, 2010 at 7:56 PM, Charles Lowell <[email protected]> 
>>> > wrote:
>>> >> While we're on the subject of property interceptors and API
>>> >> asymmetries, I can't figure out to add named and indexed getter/
>>> >> setter, etc.. to Function objects inside the javascript runtime. I've
>>> >> searched extensively for a way to do this, but nothing as reliable as
>>> >> ObjectTemplate::SetNamedPropertyHandler()
>>>
>>> > I don't quite understand what do you mean by 'inside the javascript
>>> > runtime'?  Do you want to invoke JS function?  Or add native
>>> > interceptor to JS function (to be invoked as a constructor)?
>>>
>>> > AFAIK currently one can only add interceptors (both named and indexed)
>>> > to FunctionTemplates.
>>>
>>> > BTW, what are you trying to achieve?  If you could tell us, maybe
>>> > there could be found some way out.
>>>
>>> > yours,
>>> > anton.
>>>
>>> >> On Aug 6, 12:49 pm, Anton Muhin <[email protected]> wrote:
>>> >>> From the right address.
>>>
>>> >>> On Fri, Aug 6, 2010 at 9:39 PM, Anton Muhin <[email protected]> wrote:
>>> >>> > Charles,
>>>
>>> >>> > I just didn't have to time to implement the same functionality for
>>> >>> > indexed interceptor.  Filing a bug and cc'ing you.
>>>
>>> >>> > I'll try to implement it, but it might require some time to roll in to
>>> >>> > make transition to new api smooth.
>>>
>>> >>> > yours,
>>> >>> > anton.
>>>
>>> >>> > On Fri, Aug 6, 2010 at 9:31 PM, Charles Lowell 
>>> >>> > <[email protected]> wrote:
>>> >>> >> Hi,
>>>
>>> >>> >> I've noticed a small asymmetry in the interfaces for
>>> >>> >> IndexedPropertyQuery and NamedPropertyQuery. Specifically that the
>>> >>> >> indexed version returns just a Boolean instead of and Integer 
>>> >>> >> encoding
>>> >>> >> property attributes. Is this intentional? Rhino, for example allows
>>> >>> >> for specifying attributes for indexed values as well.
>>>
>>> >>> >> cheers,
>>> >>> >> Charles
>>>
>>> >>> >> --
>>> >>> >> 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