2 #include <AppCore/Defines.h> 3 #include <JavaScriptCore/JavaScript.h> 4 #include <JavaScriptCore/JSStringRef.h> 62 operator JSStringRef()
const {
return instance_; }
65 JSStringRef instance_;
73 struct AExport JSValueNullTag {};
76 struct AExport JSValueUndefinedTag {};
136 bool IsUndefined()
const;
138 bool IsBoolean()
const;
140 bool IsNumber()
const;
142 bool IsString()
const;
144 bool IsObject()
const;
146 bool IsArray()
const;
148 bool IsFunction()
const;
151 bool ToBoolean()
const;
154 double ToNumber()
const;
157 int64_t ToInteger()
const {
return static_cast<int64_t>(ToNumber()); }
171 operator bool()
const {
return ToBoolean(); }
173 operator double()
const {
return ToNumber(); }
175 operator uint32_t()
const {
return static_cast<uint32_t>(ToNumber()); }
177 operator int32_t()
const {
return static_cast<uint32_t>(ToNumber()); }
179 operator uint64_t()
const {
return static_cast<uint64_t>(ToNumber()); }
181 operator int64_t()
const {
return ToInteger(); }
183 operator String()
const {
return ToString(); }
185 operator JSString()
const {
return ToString(); }
189 operator JSObjectRef()
const;
196 operator JSValueRef()
const {
return instance(); }
200 JSValue(JSContextRef ctx, JSValueRef val);
201 virtual JSValueRef instance()
const;
204 JSValueRef instance_ =
nullptr;
208 typedef std::vector<JSValue> JSArgs;
209 typedef std::function<void(
const JSObject&,
const JSArgs&)> JSCallback;
210 typedef std::function<
JSValue(
const JSObject&,
const JSArgs&)> JSCallbackWithRetval;
213 #define BindJSCallback(fn) (JSCallback)std::bind(fn, this, std::placeholders::_1, std::placeholders::_2) 214 #define BindJSCallbackWithRetval(fn) (JSCallbackWithRetval)std::bind(fn, this, std::placeholders::_1, std::placeholders::_2) 235 virtual JSValueRef instance()
const;
236 JSPropertyValue(JSContextRef ctx, JSObjectRef proxy_obj,
unsigned idx);
242 bool using_numeric_idx_;
243 unsigned numeric_idx_;
259 JSArray(
const std::initializer_list<JSValue>& values);
262 JSArray(JSObjectRef array_obj);
279 int indexOf(
const JSValue& val,
int start = 0)
const;
285 operator JSObjectRef()
const {
return instance_; }
288 JSArray(JSContextRef ctx, JSValueRef val);
291 JSObjectRef instance_;
319 bool HasProperty(
JSString propertyName)
const;
322 bool DeleteProperty(
JSString propertyName);
325 operator JSObjectRef()
const {
return instance_; }
328 JSObject(JSContextRef ctx, JSValueRef val);
329 JSObject(JSContextRef ctx, JSObjectRef obj);
332 JSObjectRef instance_;
356 bool IsValid()
const;
359 JSValue operator()(
const JSArgs& args);
365 operator JSObjectRef()
const {
return instance_; }
371 JSObjectRef instance_;
JSString wrapper that automatically manages lifetime and provides helpful conversions.
JSObject wrapper that automatically manages lifetime and provides convenient access to properties.
Wrapper for JSObject property value (JSValue subclass).
JSObject AExport JSGlobalObject()
Get the Global Object for the current JSContext.
JSValue wrapper that automatically manages lifetime and provides helpful conversions.
JSContextRef AExport GetJSContext()
Get the current JSContext.
This is a set of common JavaScriptCore Helper functions to simplify sample code.
JSFunction wrapper that automatically manages lifetime and provides convenient function invocation op...
UTF-16 String container with conversions for UTF-8 and UTF-32.
JSValue AExport JSEval(const JSString &str)
Evaluate a string of JavaScript and return a result.
The header for the String class.
JSArray wrapper that automatically manages lifetime and provides convenient access to indices and Arr...
void AExport SetJSContext(JSContextRef ctx)
Set the current JSContext.