This works perfectly. I knew I was being naive, thank you Jakob for pointing me in the right direction!
On Thursday, June 21, 2018 at 11:28:51 PM UTC+2, Jakob Kummerow wrote: > > Well, if you're creating a new FunctionTemplate, then of course your > existing "car" object isn't an instance of that new class ;-) > > Value::InstanceOf is the C++ equivalent of JavaScript "instanceof": > > Local<Value> object = Local<Value>::Cast(FindObject("car")); // Assuming > "car" is, indeed, a Value. Check first if needed. > Local<Object> car_class = FindObject("Car"); > object->InstanceOf(context, car_class); // Should return Just(true). > Throws if car_class is not a function. > > On Wed, Jun 20, 2018 at 11:00 PM Gonzalo Diethelm <gonzalo....@gmail.com > <javascript:>> wrote: > >> I run the following JS code in the Chrome console: >> >> // Version 67.0.3396.87 (Official Build) (64-bit) >> >> function Car(make) { this.make = make } >> var car = new Car('Ferrari') >> car instanceof Car // returns true >> >> Now, on my C++ code I get ahold of car (by looking "car" up in the global >> context), and want to run the equivalent instanceof code, given only the >> class name "Car" as a string. Notice that I do not have a C++ class / >> function backing up Car. >> >> Just to make it clear, compiling and running "car instanceof Car" as JS >> code in my C++ code, works totally fine. >> >> I naively tried to do something like this, which didn't work: >> >> Local<Object> object = FindObject("car"); // this works >> Local<FunctionTemplate> ft = FunctionTemplate::New(isolate); >> Local<String> name = String::NewFromUtf8( >> isolate, "Car", NewStringType::kNormal).ToLocalChecked(); >> ft->SetClassName(name); >> if (ft->HasInstance(object)) { >> // this never happens >> } >> >> How can I do this, without manually compiling / running JS code? >> >> Thanks! >> >> -- >> -- >> v8-users mailing list >> v8-u...@googlegroups.com <javascript:> >> http://groups.google.com/group/v8-users >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to v8-users+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.