1
0
Fork 0
mirror of https://github.com/rubyjs/therubyracer synced 2023-03-27 23:21:42 -04:00
therubyracer/ext/v8/object.h
Georgy Angelov d1e9088cf0 Port a ton of the original ext classes
You can now create a JS object from Ruby-land without segfaulting
2015-03-20 20:47:57 +00:00

68 lines
3.1 KiB
C++

#ifndef RR_OBJECT
#define RR_OBJECT
namespace rr {
class Object : public Ref<v8::Object> {
public:
static void Init();
static VALUE New(VALUE self);
static VALUE Set(VALUE self, VALUE key, VALUE value);
// static VALUE ForceSet(VALUE self, VALUE key, VALUE value);
static VALUE Get(VALUE self, VALUE key);
// static VALUE GetPropertyAttributes(VALUE self, VALUE key);
// static VALUE Has(VALUE self, VALUE key);
// static VALUE Delete(VALUE self, VALUE key);
// static VALUE ForceDelete(VALUE self, VALUE key);
// static VALUE SetAccessor(int argc, VALUE* argv, VALUE self);
// static VALUE GetPropertyNames(VALUE self);
// static VALUE GetOwnPropertyNames(VALUE self);
// static VALUE GetPrototype(VALUE self);
// static VALUE SetPrototype(VALUE self, VALUE prototype);
// static VALUE FindInstanceInPrototypeChain(VALUE self, VALUE impl);
// static VALUE ObjectProtoToString(VALUE self);
// static VALUE GetConstructorName(VALUE self);
// static VALUE InternalFieldCount(VALUE self);
// static VALUE GetInternalField(VALUE self, VALUE idx);
// static VALUE SetInternalField(VALUE self, VALUE idx, VALUE value);
// static VALUE HasOwnProperty(VALUE self, VALUE key);
// static VALUE HasRealNamedProperty(VALUE self, VALUE key);
// static VALUE HasRealIndexedProperty(VALUE self, VALUE idx);
// static VALUE HasRealNamedCallbackProperty(VALUE self, VALUE key);
// static VALUE GetRealNamedPropertyInPrototypeChain(VALUE self, VALUE key);
// static VALUE GetRealNamedProperty(VALUE self, VALUE key);
// static VALUE HasNamedLookupInterceptor(VALUE self);
// static VALUE HasIndexedLookupInterceptor(VALUE self);
// static VALUE TurnOnAccessCheck(VALUE self);
// static VALUE GetIdentityHash(VALUE self);
// static VALUE SetHiddenValue(VALUE self, VALUE key, VALUE value);
// static VALUE GetHiddenValue(VALUE self, VALUE key);
// static VALUE DeleteHiddenValue(VALUE self, VALUE key);
// static VALUE IsDirty(VALUE self);
// static VALUE Clone(VALUE self);
// static VALUE CreationContext(VALUE self);
// static VALUE SetIndexedPropertiesToPixelData(VALUE self, VALUE data, VALUE length);
// static VALUE GetIndexedPropertiesPixelData(VALUE self);
// static VALUE HasIndexedPropertiesInPixelData(VALUE self);
// static VALUE GetIndexedPropertiesPixelDataLength(VALUE self);
// static VALUE SetIndexedPropertiesToExternalArrayData(VALUE self);
// static VALUE HasIndexedPropertiesInExternalArrayData(VALUE self);
// static VALUE GetIndexedPropertiesExternalArrayData(VALUE self);
// static VALUE GetIndexedPropertiesExternalArrayDataType(VALUE self);
// static VALUE GetIndexedPropertiesExternalArrayDataLength(VALUE self);
// static VALUE IsCallable(VALUE self);
// static VALUE CallAsFunction(VALUE self, VALUE recv, VALUE argv);
// static VALUE CallAsConstructor(VALUE self, VALUE argv);
inline Object(VALUE value) : Ref<v8::Object>(value) {}
inline Object(v8::Handle<v8::Object> object) : Ref<v8::Object>(object) {}
virtual operator VALUE();
protected:
VALUE downcast();
};
}
#endif