Hmm, I haven't tested this from the C++ API, but with the V8 shell
doing this:
var o={};
o.__proto__.__defineSetter("x",function(v) { print("New x value:
"+v); });
o.x=10;
will actually print "New x value: 10".

Seems to me that setters defined on the object proto are also being
called... Weird behaviour though, not sure it should work like that.

On Jul 20, 7:41 pm, TB <[email protected]> wrote:
> I just found a possible solution to this problem. I feel it's a bit
> hack-ish, but it works, so I'm not really complaining.
> The trick is to create an ObjectTemplate with the appropriate getters
> or properties, and then do:
> funcTemplate->Set(v8::String::New("__proto__"),objTemplate);
>
> I honestly don't know how I couldn't have thought of that before,
> guess I was too caught up in reading all the definitions and
> implementation of FunctionTemplate to notice a solution this trivial.
>
> On Jul 20, 7:00 pm, TB <[email protected]> wrote:
>
>
>
> > Hi,
>
> > I'm trying to make a function-template that apart from having some
> > default functions or values on new instances and the prototype also
> > has some default properties (getters, to be more specific) on the
> > actual function object.
> > Something like the following Javascript example:
>
> > function SillyString(str) {
> >   this.str=str;
> >   return this;}
>
> > SillyString.prototype.silly=function() {
> > print("Silly"+this.str);}
>
> > //This is the part that I can't find out:
> > SillyString.__defineGetter__("default",function() { return new
> > SillyString("String"); });
> > //Usage example
> > var y=new SillyString("HelloWorld"); //<-- this should be possible
> > var y=SillyString.default; //<-- Should return the equivalent of new
> > SillyString("String");
>
> > Would anyone have any idea how to go about doing this ? I've tried
> > using just an ObjectTemplate with a SetCallAsFunctionHandler, but that
> > throws a type error when used with "new".
>
> > Thanks,
> > TB
--~--~---------~--~----~------------~-------~--~----~
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to