AtomicPluginTest.cpp 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977
  1. #include "AtomicPlugin.h"
  2. namespace AtomicPlugin
  3. {
  4. static JSVMImports gJSVM;
  5. extern "C"
  6. {
  7. duk_context *duk_create_heap(duk_alloc_function alloc_func,
  8. duk_realloc_function realloc_func,
  9. duk_free_function free_func,
  10. void *heap_udata,
  11. duk_fatal_function fatal_handler)
  12. {
  13. return gJSVM.duk_create_heap(alloc_func, realloc_func, free_func, heap_udata, fatal_handler);
  14. }
  15. void duk_destroy_heap(duk_context *ctx)
  16. {
  17. gJSVM.duk_destroy_heap(ctx);
  18. }
  19. //----------------------------------------------------------------
  20. void *duk_alloc_raw(duk_context *ctx, duk_size_t size)
  21. {
  22. return gJSVM.duk_alloc_raw(ctx, size);
  23. }
  24. void duk_free_raw(duk_context *ctx, void *ptr)
  25. {
  26. gJSVM.duk_free_raw(ctx, ptr);
  27. }
  28. void *duk_realloc_raw(duk_context *ctx, void *ptr, duk_size_t size)
  29. {
  30. return gJSVM.duk_realloc_raw(ctx, ptr, size);
  31. }
  32. void *duk_alloc(duk_context *ctx, duk_size_t size)
  33. {
  34. return gJSVM.duk_alloc(ctx, size);
  35. }
  36. void duk_free(duk_context *ctx, void *ptr)
  37. {
  38. gJSVM.duk_free(ctx, ptr);
  39. }
  40. void *duk_realloc(duk_context *ctx, void *ptr, duk_size_t size)
  41. {
  42. return gJSVM.duk_realloc(ctx, ptr, size);
  43. }
  44. void duk_get_memory_functions(duk_context *ctx, duk_memory_functions *out_funcs)
  45. {
  46. gJSVM.duk_get_memory_functions(ctx, out_funcs);
  47. }
  48. void duk_gc(duk_context *ctx, duk_uint_t flags)
  49. {
  50. gJSVM.duk_gc(ctx, flags);
  51. }
  52. //----------------------------------------
  53. void duk_throw(duk_context *ctx)
  54. {
  55. gJSVM.duk_throw(ctx);
  56. }
  57. void duk_fatal(duk_context *ctx, duk_errcode_t err_code, const char *err_msg)
  58. {
  59. gJSVM.duk_fatal(ctx, err_code, err_msg);
  60. }
  61. void duk_error_raw(duk_context *ctx, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt, ...)
  62. {
  63. va_list arglist;
  64. va_start(arglist, fmt);
  65. gJSVM.duk_error_raw(ctx, err_code, filename, line, fmt, arglist);
  66. va_end(arglist);
  67. }
  68. void duk_error_va_raw(duk_context *ctx, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt, va_list ap)
  69. {
  70. gJSVM.duk_error_va_raw(ctx, err_code, filename, line, fmt, ap);
  71. }
  72. //--------------------------------------------
  73. duk_bool_t duk_is_strict_call(duk_context *ctx)
  74. {
  75. return gJSVM.duk_is_strict_call(ctx);
  76. }
  77. duk_bool_t duk_is_constructor_call(duk_context *ctx)
  78. {
  79. return gJSVM.duk_is_constructor_call(ctx);
  80. }
  81. //--------------------------------------------------------
  82. duk_idx_t duk_normalize_index(duk_context *ctx, duk_idx_t index)
  83. {
  84. return gJSVM.duk_normalize_index(ctx, index);
  85. }
  86. duk_idx_t duk_require_normalize_index(duk_context *ctx, duk_idx_t index)
  87. {
  88. return gJSVM.duk_require_normalize_index(ctx, index);
  89. }
  90. duk_bool_t duk_is_valid_index(duk_context *ctx, duk_idx_t index)
  91. {
  92. return gJSVM.duk_is_valid_index(ctx, index);
  93. }
  94. void duk_require_valid_index(duk_context *ctx, duk_idx_t index)
  95. {
  96. gJSVM.duk_require_valid_index(ctx, index);
  97. }
  98. duk_idx_t duk_get_top(duk_context *ctx)
  99. {
  100. return gJSVM.duk_get_top(ctx);
  101. }
  102. void duk_set_top(duk_context *ctx, duk_idx_t index)
  103. {
  104. gJSVM.duk_set_top(ctx, index);
  105. }
  106. duk_idx_t duk_get_top_index(duk_context *ctx)
  107. {
  108. return gJSVM.duk_get_top_index(ctx);
  109. }
  110. duk_idx_t duk_require_top_index(duk_context *ctx)
  111. {
  112. return gJSVM.duk_require_top_index(ctx);
  113. }
  114. duk_bool_t duk_check_stack(duk_context *ctx, duk_idx_t extra)
  115. {
  116. return gJSVM.duk_check_stack(ctx, extra);
  117. }
  118. void duk_require_stack(duk_context *ctx, duk_idx_t extra)
  119. {
  120. gJSVM.duk_require_stack(ctx, extra);
  121. }
  122. duk_bool_t duk_check_stack_top(duk_context *ctx, duk_idx_t top)
  123. {
  124. return gJSVM.duk_check_stack_top(ctx, top);
  125. }
  126. void duk_require_stack_top(duk_context *ctx, duk_idx_t top)
  127. {
  128. gJSVM.duk_require_stack_top(ctx, top);
  129. }
  130. void duk_swap(duk_context *ctx, duk_idx_t index1, duk_idx_t index2)
  131. {
  132. gJSVM.duk_swap(ctx, index1, index2);
  133. }
  134. void duk_swap_top(duk_context *ctx, duk_idx_t index)
  135. {
  136. gJSVM.duk_swap_top(ctx, index);
  137. }
  138. void duk_dup(duk_context *ctx, duk_idx_t from_index)
  139. {
  140. gJSVM.duk_dup(ctx, from_index);
  141. }
  142. void duk_dup_top(duk_context *ctx)
  143. {
  144. gJSVM.duk_dup_top(ctx);
  145. }
  146. void duk_insert(duk_context *ctx, duk_idx_t to_index)
  147. {
  148. gJSVM.duk_insert(ctx, to_index);
  149. }
  150. void duk_replace(duk_context *ctx, duk_idx_t to_index)
  151. {
  152. gJSVM.duk_replace(ctx, to_index);
  153. }
  154. void duk_copy(duk_context *ctx, duk_idx_t from_index, duk_idx_t to_index)
  155. {
  156. gJSVM.duk_copy(ctx, from_index, to_index);
  157. }
  158. void duk_remove(duk_context *ctx, duk_idx_t index)
  159. {
  160. gJSVM.duk_remove(ctx, index);
  161. }
  162. void duk_xcopymove_raw(duk_context *to_ctx, duk_context *from_ctx, duk_idx_t count, duk_bool_t is_copy)
  163. {
  164. gJSVM.duk_xcopymove_raw(to_ctx, from_ctx, count, is_copy);
  165. }
  166. // -------------------------------------------------
  167. void duk_push_undefined(duk_context *ctx)
  168. {
  169. gJSVM.duk_push_undefined(ctx);
  170. }
  171. void duk_push_null(duk_context *ctx)
  172. {
  173. gJSVM.duk_push_null(ctx);
  174. }
  175. void duk_push_boolean(duk_context *ctx, duk_bool_t val)
  176. {
  177. gJSVM.duk_push_boolean(ctx, val);
  178. }
  179. void duk_push_true(duk_context *ctx)
  180. {
  181. gJSVM.duk_push_true(ctx);
  182. }
  183. void duk_push_false(duk_context *ctx)
  184. {
  185. gJSVM.duk_push_false(ctx);
  186. }
  187. void duk_push_number(duk_context *ctx, duk_double_t val)
  188. {
  189. gJSVM.duk_push_number(ctx, val);
  190. }
  191. void duk_push_nan(duk_context *ctx)
  192. {
  193. gJSVM.duk_push_nan(ctx);
  194. }
  195. void duk_push_int(duk_context *ctx, duk_int_t val)
  196. {
  197. gJSVM.duk_push_int(ctx, val);
  198. }
  199. void duk_push_uint(duk_context *ctx, duk_uint_t val)
  200. {
  201. gJSVM.duk_push_uint(ctx, val);
  202. }
  203. const char *duk_push_string(duk_context *ctx, const char *str)
  204. {
  205. return gJSVM.duk_push_string(ctx, str);
  206. }
  207. const char *duk_push_lstring(duk_context *ctx, const char *str, duk_size_t len)
  208. {
  209. return gJSVM.duk_push_lstring(ctx, str, len);
  210. }
  211. void duk_push_pointer(duk_context *ctx, void *p)
  212. {
  213. gJSVM.duk_push_pointer(ctx, p);
  214. }
  215. const char *duk_push_sprintf(duk_context *ctx, const char *fmt, ...)
  216. {
  217. va_list arglist;
  218. va_start(arglist, fmt);
  219. const char* returnValue = gJSVM.duk_push_sprintf(ctx, fmt, arglist);
  220. va_end(arglist);
  221. return returnValue;
  222. }
  223. const char *duk_push_vsprintf(duk_context *ctx, const char *fmt, va_list ap)
  224. {
  225. return gJSVM.duk_push_vsprintf(ctx, fmt, ap);
  226. }
  227. const char *duk_push_string_file_raw(duk_context *ctx, const char *path, duk_uint_t flags)
  228. {
  229. return gJSVM.duk_push_string_file_raw(ctx, path, flags);
  230. }
  231. void duk_push_this(duk_context *ctx)
  232. {
  233. gJSVM.duk_push_this(ctx);
  234. }
  235. void duk_push_current_function(duk_context *ctx)
  236. {
  237. gJSVM.duk_push_current_function(ctx);
  238. }
  239. void duk_push_current_thread(duk_context *ctx)
  240. {
  241. gJSVM.duk_push_current_thread(ctx);
  242. }
  243. void duk_push_global_object(duk_context *ctx)
  244. {
  245. gJSVM.duk_push_global_object(ctx);
  246. }
  247. void duk_push_heap_stash(duk_context *ctx)
  248. {
  249. gJSVM.duk_push_heap_stash(ctx);
  250. }
  251. void duk_push_global_stash(duk_context *ctx)
  252. {
  253. gJSVM.duk_push_global_stash(ctx);
  254. }
  255. void duk_push_thread_stash(duk_context *ctx, duk_context *target_ctx)
  256. {
  257. gJSVM.duk_push_thread_stash(ctx, target_ctx);
  258. }
  259. duk_idx_t duk_push_object(duk_context *ctx)
  260. {
  261. return gJSVM.duk_push_object(ctx);
  262. }
  263. duk_idx_t duk_push_array(duk_context *ctx)
  264. {
  265. return gJSVM.duk_push_array(ctx);
  266. }
  267. duk_idx_t duk_push_c_function(duk_context *ctx, duk_c_function func, duk_idx_t nargs)
  268. {
  269. return gJSVM.duk_push_c_function(ctx, func, nargs);
  270. }
  271. duk_idx_t duk_push_c_lightfunc(duk_context *ctx, duk_c_function func, duk_idx_t nargs, duk_idx_t length, duk_int_t magic)
  272. {
  273. return gJSVM.duk_push_c_lightfunc(ctx, func, nargs, length, magic);
  274. }
  275. duk_idx_t duk_push_thread_raw(duk_context *ctx, duk_uint_t flags)
  276. {
  277. return gJSVM.duk_push_thread_raw(ctx, flags);
  278. }
  279. duk_idx_t duk_push_error_object_raw(duk_context *ctx, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt, ...)
  280. {
  281. va_list arglist;
  282. va_start(arglist, fmt);
  283. duk_idx_t returnValue = gJSVM.duk_push_error_object_raw(ctx, err_code, filename, line, fmt, arglist);
  284. va_end(arglist);
  285. return returnValue;
  286. }
  287. duk_idx_t duk_push_error_object_va_raw(duk_context *ctx, duk_errcode_t err_code, const char *filename, duk_int_t line, const char *fmt, va_list ap)
  288. {
  289. return gJSVM.duk_push_error_object_va_raw(ctx, err_code, filename, line, fmt, ap);
  290. }
  291. void *duk_push_buffer_raw(duk_context *ctx, duk_size_t size, duk_small_uint_t flags)
  292. {
  293. return gJSVM.duk_push_buffer_raw(ctx, size, flags);
  294. }
  295. duk_idx_t duk_push_heapptr(duk_context *ctx, void *ptr)
  296. {
  297. return gJSVM.duk_push_heapptr(ctx, ptr);
  298. }
  299. // --------------------------------
  300. void duk_pop(duk_context *ctx)
  301. {
  302. gJSVM.duk_pop(ctx);
  303. }
  304. void duk_pop_n(duk_context *ctx, duk_idx_t count)
  305. {
  306. gJSVM.duk_pop_n(ctx, count);
  307. }
  308. void duk_pop_2(duk_context *ctx)
  309. {
  310. gJSVM.duk_pop_2(ctx);
  311. }
  312. void duk_pop_3(duk_context *ctx)
  313. {
  314. gJSVM.duk_pop_3(ctx);
  315. }
  316. duk_int_t duk_get_type(duk_context *ctx, duk_idx_t index)
  317. {
  318. return gJSVM.duk_get_type(ctx, index);
  319. }
  320. duk_bool_t duk_check_type(duk_context *ctx, duk_idx_t index, duk_int_t type)
  321. {
  322. return gJSVM.duk_check_type(ctx, index, type);
  323. }
  324. duk_uint_t duk_get_type_mask(duk_context *ctx, duk_idx_t index)
  325. {
  326. return gJSVM.duk_get_type_mask(ctx, index);
  327. }
  328. duk_bool_t duk_check_type_mask(duk_context *ctx, duk_idx_t index, duk_uint_t mask)
  329. {
  330. return gJSVM.duk_check_type_mask(ctx, index, mask);
  331. }
  332. duk_bool_t duk_is_undefined(duk_context *ctx, duk_idx_t index)
  333. {
  334. return gJSVM.duk_is_undefined(ctx, index);
  335. }
  336. duk_bool_t duk_is_null(duk_context *ctx, duk_idx_t index)
  337. {
  338. return gJSVM.duk_is_null(ctx, index);
  339. }
  340. duk_bool_t duk_is_null_or_undefined(duk_context *ctx, duk_idx_t index)
  341. {
  342. return gJSVM.duk_is_null_or_undefined(ctx, index);
  343. }
  344. duk_bool_t duk_is_boolean(duk_context *ctx, duk_idx_t index)
  345. {
  346. return gJSVM.duk_is_boolean(ctx, index);
  347. }
  348. duk_bool_t duk_is_number(duk_context *ctx, duk_idx_t index)
  349. {
  350. return gJSVM.duk_is_number(ctx, index);
  351. }
  352. duk_bool_t duk_is_nan(duk_context *ctx, duk_idx_t index)
  353. {
  354. return gJSVM.duk_is_nan(ctx, index);
  355. }
  356. duk_bool_t duk_is_string(duk_context *ctx, duk_idx_t index)
  357. {
  358. return gJSVM.duk_is_string(ctx, index);
  359. }
  360. duk_bool_t duk_is_object(duk_context *ctx, duk_idx_t index)
  361. {
  362. return gJSVM.duk_is_object(ctx, index);
  363. }
  364. duk_bool_t duk_is_buffer(duk_context *ctx, duk_idx_t index)
  365. {
  366. return gJSVM.duk_is_buffer(ctx, index);
  367. }
  368. duk_bool_t duk_is_pointer(duk_context *ctx, duk_idx_t index)
  369. {
  370. return gJSVM.duk_is_pointer(ctx, index);
  371. }
  372. duk_bool_t duk_is_lightfunc(duk_context *ctx, duk_idx_t index)
  373. {
  374. return gJSVM.duk_is_lightfunc(ctx, index);
  375. }
  376. duk_bool_t duk_is_array(duk_context *ctx, duk_idx_t index)
  377. {
  378. return gJSVM.duk_is_array(ctx, index);
  379. }
  380. duk_bool_t duk_is_function(duk_context *ctx, duk_idx_t index)
  381. {
  382. return gJSVM.duk_is_function(ctx, index);
  383. }
  384. duk_bool_t duk_is_c_function(duk_context *ctx, duk_idx_t index)
  385. {
  386. return gJSVM.duk_is_c_function(ctx, index);
  387. }
  388. duk_bool_t duk_is_ecmascript_function(duk_context *ctx, duk_idx_t index)
  389. {
  390. return gJSVM.duk_is_ecmascript_function(ctx, index);
  391. }
  392. duk_bool_t duk_is_bound_function(duk_context *ctx, duk_idx_t index)
  393. {
  394. return gJSVM.duk_is_bound_function(ctx, index);
  395. }
  396. duk_bool_t duk_is_thread(duk_context *ctx, duk_idx_t index)
  397. {
  398. return gJSVM.duk_is_thread(ctx, index);
  399. }
  400. duk_bool_t duk_is_callable(duk_context *ctx, duk_idx_t index)
  401. {
  402. return gJSVM.duk_is_callable(ctx, index);
  403. }
  404. duk_bool_t duk_is_dynamic_buffer(duk_context *ctx, duk_idx_t index)
  405. {
  406. return gJSVM.duk_is_dynamic_buffer(ctx, index);
  407. }
  408. duk_bool_t duk_is_fixed_buffer(duk_context *ctx, duk_idx_t index)
  409. {
  410. return gJSVM.duk_is_fixed_buffer(ctx, index);
  411. }
  412. duk_bool_t duk_is_primitive(duk_context *ctx, duk_idx_t index)
  413. {
  414. return gJSVM.duk_is_primitive(ctx, index);
  415. }
  416. duk_errcode_t duk_get_error_code(duk_context *ctx, duk_idx_t index)
  417. {
  418. return gJSVM.duk_get_error_code(ctx, index);
  419. }
  420. // ---------------------------------------------------------------
  421. duk_bool_t duk_get_boolean(duk_context *ctx, duk_idx_t index)
  422. {
  423. return gJSVM.duk_get_boolean(ctx, index);
  424. }
  425. duk_double_t duk_get_number(duk_context *ctx, duk_idx_t index)
  426. {
  427. return gJSVM.duk_get_number(ctx, index);
  428. }
  429. duk_int_t duk_get_int(duk_context *ctx, duk_idx_t index)
  430. {
  431. return gJSVM.duk_get_int(ctx, index);
  432. }
  433. duk_uint_t duk_get_uint(duk_context *ctx, duk_idx_t index)
  434. {
  435. return gJSVM.duk_get_uint(ctx, index);
  436. }
  437. const char *duk_get_string(duk_context *ctx, duk_idx_t index)
  438. {
  439. return gJSVM.duk_get_string(ctx, index);
  440. }
  441. const char *duk_get_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
  442. {
  443. return gJSVM.duk_get_lstring(ctx, index, out_len);
  444. }
  445. void *duk_get_buffer(duk_context *ctx, duk_idx_t index, duk_size_t *out_size)
  446. {
  447. return gJSVM.duk_get_buffer(ctx, index, out_size);
  448. }
  449. void *duk_get_pointer(duk_context *ctx, duk_idx_t index)
  450. {
  451. return gJSVM.duk_get_pointer(ctx, index);
  452. }
  453. duk_c_function duk_get_c_function(duk_context *ctx, duk_idx_t index)
  454. {
  455. return gJSVM.duk_get_c_function(ctx, index);
  456. }
  457. duk_context *duk_get_context(duk_context *ctx, duk_idx_t index)
  458. {
  459. return gJSVM.duk_get_context(ctx, index);
  460. }
  461. void *duk_get_heapptr(duk_context *ctx, duk_idx_t index)
  462. {
  463. return gJSVM.duk_get_heapptr(ctx, index);
  464. }
  465. duk_size_t duk_get_length(duk_context *ctx, duk_idx_t index)
  466. {
  467. return gJSVM.duk_get_length(ctx, index);
  468. }
  469. void duk_require_undefined(duk_context *ctx, duk_idx_t index)
  470. {
  471. gJSVM.duk_require_undefined(ctx, index);
  472. }
  473. void duk_require_null(duk_context *ctx, duk_idx_t index)
  474. {
  475. gJSVM.duk_require_null(ctx, index);
  476. }
  477. duk_bool_t duk_require_boolean(duk_context *ctx, duk_idx_t index)
  478. {
  479. return gJSVM.duk_require_boolean(ctx, index);
  480. }
  481. duk_double_t duk_require_number(duk_context *ctx, duk_idx_t index)
  482. {
  483. return gJSVM.duk_require_number(ctx, index);
  484. }
  485. duk_int_t duk_require_int(duk_context *ctx, duk_idx_t index)
  486. {
  487. return gJSVM.duk_require_int(ctx, index);
  488. }
  489. duk_uint_t duk_require_uint(duk_context *ctx, duk_idx_t index)
  490. {
  491. return gJSVM.duk_require_uint(ctx, index);
  492. }
  493. const char *duk_require_string(duk_context *ctx, duk_idx_t index)
  494. {
  495. return gJSVM.duk_require_string(ctx, index);
  496. }
  497. const char *duk_require_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
  498. {
  499. return gJSVM.duk_require_lstring(ctx, index, out_len);
  500. }
  501. void *duk_require_buffer(duk_context *ctx, duk_idx_t index, duk_size_t *out_size)
  502. {
  503. return gJSVM.duk_require_buffer(ctx, index, out_size);
  504. }
  505. void *duk_require_pointer(duk_context *ctx, duk_idx_t index)
  506. {
  507. return gJSVM.duk_require_pointer(ctx, index);
  508. }
  509. duk_c_function duk_require_c_function(duk_context *ctx, duk_idx_t index)
  510. {
  511. return gJSVM.duk_require_c_function(ctx, index);
  512. }
  513. duk_context *duk_require_context(duk_context *ctx, duk_idx_t index)
  514. {
  515. return gJSVM.duk_require_context(ctx, index);
  516. }
  517. void *duk_require_heapptr(duk_context *ctx, duk_idx_t index)
  518. {
  519. return gJSVM.duk_require_heapptr(ctx, index);
  520. }
  521. void duk_to_undefined(duk_context *ctx, duk_idx_t index)
  522. {
  523. gJSVM.duk_to_undefined(ctx, index);
  524. }
  525. void duk_to_null(duk_context *ctx, duk_idx_t index)
  526. {
  527. gJSVM.duk_to_null(ctx, index);
  528. }
  529. duk_bool_t duk_to_boolean(duk_context *ctx, duk_idx_t index)
  530. {
  531. return gJSVM.duk_to_boolean(ctx, index);
  532. }
  533. duk_double_t duk_to_number(duk_context *ctx, duk_idx_t index)
  534. {
  535. return gJSVM.duk_to_number(ctx, index);
  536. }
  537. duk_int_t duk_to_int(duk_context *ctx, duk_idx_t index)
  538. {
  539. return gJSVM.duk_to_int(ctx, index);
  540. }
  541. duk_uint_t duk_to_uint(duk_context *ctx, duk_idx_t index)
  542. {
  543. return gJSVM.duk_to_uint(ctx, index);
  544. }
  545. duk_int32_t duk_to_int32(duk_context *ctx, duk_idx_t index)
  546. {
  547. return gJSVM.duk_to_int32(ctx, index);
  548. }
  549. duk_uint32_t duk_to_uint32(duk_context *ctx, duk_idx_t index)
  550. {
  551. return gJSVM.duk_to_uint32(ctx, index);
  552. }
  553. duk_uint16_t duk_to_uint16(duk_context *ctx, duk_idx_t index)
  554. {
  555. return gJSVM.duk_to_uint16(ctx, index);
  556. }
  557. const char *duk_to_string(duk_context *ctx, duk_idx_t index)
  558. {
  559. return gJSVM.duk_to_string(ctx, index);
  560. }
  561. const char *duk_to_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
  562. {
  563. return gJSVM.duk_to_lstring(ctx, index, out_len);
  564. }
  565. void *duk_to_buffer_raw(duk_context *ctx, duk_idx_t index, duk_size_t *out_size, duk_uint_t flags)
  566. {
  567. return gJSVM.duk_to_buffer_raw(ctx, index, out_size, flags);
  568. }
  569. void *duk_to_pointer(duk_context *ctx, duk_idx_t index)
  570. {
  571. return gJSVM.duk_to_pointer(ctx, index);
  572. }
  573. void duk_to_object(duk_context *ctx, duk_idx_t index)
  574. {
  575. gJSVM.duk_to_object(ctx, index);
  576. }
  577. void duk_to_defaultvalue(duk_context *ctx, duk_idx_t index, duk_int_t hint)
  578. {
  579. gJSVM.duk_to_defaultvalue(ctx, index, hint);
  580. }
  581. void duk_to_primitive(duk_context *ctx, duk_idx_t index, duk_int_t hint)
  582. {
  583. gJSVM.duk_to_primitive(ctx, index, hint);
  584. }
  585. const char *duk_safe_to_lstring(duk_context *ctx, duk_idx_t index, duk_size_t *out_len)
  586. {
  587. return gJSVM.duk_safe_to_lstring(ctx, index, out_len);
  588. }
  589. const char *duk_base64_encode(duk_context *ctx, duk_idx_t index)
  590. {
  591. return gJSVM.duk_base64_encode(ctx, index);
  592. }
  593. void duk_base64_decode(duk_context *ctx, duk_idx_t index)
  594. {
  595. gJSVM.duk_base64_decode(ctx, index);
  596. }
  597. const char *duk_hex_encode(duk_context *ctx, duk_idx_t index)
  598. {
  599. return gJSVM.duk_hex_encode(ctx, index);
  600. }
  601. void duk_hex_decode(duk_context *ctx, duk_idx_t index)
  602. {
  603. gJSVM.duk_hex_decode(ctx, index);
  604. }
  605. const char *duk_json_encode(duk_context *ctx, duk_idx_t index)
  606. {
  607. return gJSVM.duk_json_encode(ctx, index);
  608. }
  609. void duk_json_decode(duk_context *ctx, duk_idx_t index)
  610. {
  611. gJSVM.duk_json_decode(ctx, index);
  612. }
  613. void *duk_resize_buffer(duk_context *ctx, duk_idx_t index, duk_size_t new_size)
  614. {
  615. return gJSVM.duk_resize_buffer(ctx, index, new_size);
  616. }
  617. duk_bool_t duk_get_prop(duk_context *ctx, duk_idx_t obj_index)
  618. {
  619. return gJSVM.duk_get_prop(ctx, obj_index);
  620. }
  621. duk_bool_t duk_get_prop_string(duk_context *ctx, duk_idx_t obj_index, const char *key)
  622. {
  623. return gJSVM.duk_get_prop_string(ctx, obj_index, key);
  624. }
  625. duk_bool_t duk_get_prop_index(duk_context *ctx, duk_idx_t obj_index, duk_uarridx_t arr_index)
  626. {
  627. return gJSVM.duk_get_prop_index(ctx, obj_index, arr_index);
  628. }
  629. duk_bool_t duk_put_prop(duk_context *ctx, duk_idx_t obj_index)
  630. {
  631. return gJSVM.duk_put_prop(ctx, obj_index);
  632. }
  633. duk_bool_t duk_put_prop_string(duk_context *ctx, duk_idx_t obj_index, const char *key)
  634. {
  635. return gJSVM.duk_put_prop_string(ctx, obj_index, key);
  636. }
  637. duk_bool_t duk_put_prop_index(duk_context *ctx, duk_idx_t obj_index, duk_uarridx_t arr_index)
  638. {
  639. return gJSVM.duk_put_prop_index(ctx, obj_index, arr_index);
  640. }
  641. duk_bool_t duk_del_prop(duk_context *ctx, duk_idx_t obj_index)
  642. {
  643. return gJSVM.duk_del_prop(ctx, obj_index);
  644. }
  645. duk_bool_t duk_del_prop_string(duk_context *ctx, duk_idx_t obj_index, const char *key)
  646. {
  647. return gJSVM.duk_del_prop_string(ctx, obj_index, key);
  648. }
  649. duk_bool_t duk_del_prop_index(duk_context *ctx, duk_idx_t obj_index, duk_uarridx_t arr_index)
  650. {
  651. return gJSVM.duk_del_prop_index(ctx, obj_index, arr_index);
  652. }
  653. duk_bool_t duk_has_prop(duk_context *ctx, duk_idx_t obj_index)
  654. {
  655. return gJSVM.duk_has_prop(ctx, obj_index);
  656. }
  657. duk_bool_t duk_has_prop_string(duk_context *ctx, duk_idx_t obj_index, const char *key)
  658. {
  659. return gJSVM.duk_has_prop_string(ctx, obj_index, key);
  660. }
  661. duk_bool_t duk_has_prop_index(duk_context *ctx, duk_idx_t obj_index, duk_uarridx_t arr_index)
  662. {
  663. return gJSVM.duk_has_prop_index(ctx, obj_index, arr_index);
  664. }
  665. void duk_def_prop(duk_context *ctx, duk_idx_t obj_index, duk_uint_t flags)
  666. {
  667. gJSVM.duk_def_prop(ctx, obj_index, flags);
  668. }
  669. duk_bool_t duk_get_global_string(duk_context *ctx, const char *key)
  670. {
  671. return gJSVM.duk_get_global_string(ctx, key);
  672. }
  673. duk_bool_t duk_put_global_string(duk_context *ctx, const char *key)
  674. {
  675. return gJSVM.duk_put_global_string(ctx, key);
  676. }
  677. void duk_get_prototype(duk_context *ctx, duk_idx_t index)
  678. {
  679. gJSVM.duk_get_prototype(ctx, index);
  680. }
  681. void duk_set_prototype(duk_context *ctx, duk_idx_t index)
  682. {
  683. gJSVM.duk_set_prototype(ctx, index);
  684. }
  685. void duk_get_finalizer(duk_context *ctx, duk_idx_t index)
  686. {
  687. gJSVM.duk_get_finalizer(ctx, index);
  688. }
  689. void duk_set_finalizer(duk_context *ctx, duk_idx_t index)
  690. {
  691. gJSVM.duk_set_finalizer(ctx, index);
  692. }
  693. void duk_set_global_object(duk_context *ctx)
  694. {
  695. gJSVM.duk_set_global_object(ctx);
  696. }
  697. duk_int_t duk_get_magic(duk_context *ctx, duk_idx_t index)
  698. {
  699. return gJSVM.duk_get_magic(ctx, index);
  700. }
  701. void duk_set_magic(duk_context *ctx, duk_idx_t index, duk_int_t magic)
  702. {
  703. gJSVM.duk_set_magic(ctx, index, magic);
  704. }
  705. duk_int_t duk_get_current_magic(duk_context *ctx)
  706. {
  707. return gJSVM.duk_get_current_magic(ctx);
  708. }
  709. void duk_put_function_list(duk_context *ctx, duk_idx_t obj_index, const duk_function_list_entry *funcs)
  710. {
  711. gJSVM.duk_put_function_list(ctx, obj_index, funcs);
  712. }
  713. void duk_put_number_list(duk_context *ctx, duk_idx_t obj_index, const duk_number_list_entry *numbers)
  714. {
  715. gJSVM.duk_put_number_list(ctx, obj_index, numbers);
  716. }
  717. void duk_compact(duk_context *ctx, duk_idx_t obj_index)
  718. {
  719. gJSVM.duk_compact(ctx, obj_index);
  720. }
  721. void duk_enum(duk_context *ctx, duk_idx_t obj_index, duk_uint_t enum_flags)
  722. {
  723. gJSVM.duk_enum(ctx, obj_index, enum_flags);
  724. }
  725. duk_bool_t duk_next(duk_context *ctx, duk_idx_t enum_index, duk_bool_t get_value)
  726. {
  727. return gJSVM.duk_next(ctx, enum_index, get_value);
  728. }
  729. void duk_concat(duk_context *ctx, duk_idx_t count)
  730. {
  731. gJSVM.duk_concat(ctx, count);
  732. }
  733. void duk_join(duk_context *ctx, duk_idx_t count)
  734. {
  735. gJSVM.duk_join(ctx, count);
  736. }
  737. void duk_decode_string(duk_context *ctx, duk_idx_t index, duk_decode_char_function callback, void *udata)
  738. {
  739. gJSVM.duk_decode_string(ctx, index, callback, udata);
  740. }
  741. void duk_map_string(duk_context *ctx, duk_idx_t index, duk_map_char_function callback, void *udata)
  742. {
  743. gJSVM.duk_map_string(ctx, index, callback, udata);
  744. }
  745. void duk_substring(duk_context *ctx, duk_idx_t index, duk_size_t start_char_offset, duk_size_t end_char_offset)
  746. {
  747. gJSVM.duk_substring(ctx, index, start_char_offset, end_char_offset);
  748. }
  749. void duk_trim(duk_context *ctx, duk_idx_t index)
  750. {
  751. gJSVM.duk_trim(ctx, index);
  752. }
  753. duk_codepoint_t duk_char_code_at(duk_context *ctx, duk_idx_t index, duk_size_t char_offset)
  754. {
  755. return gJSVM.duk_char_code_at(ctx, index, char_offset);
  756. }
  757. duk_bool_t duk_equals(duk_context *ctx, duk_idx_t index1, duk_idx_t index2)
  758. {
  759. return gJSVM.duk_equals(ctx, index1, index2);
  760. }
  761. duk_bool_t duk_strict_equals(duk_context *ctx, duk_idx_t index1, duk_idx_t index2)
  762. {
  763. return gJSVM.duk_strict_equals(ctx, index1, index2);
  764. }
  765. void duk_call(duk_context *ctx, duk_idx_t nargs)
  766. {
  767. gJSVM.duk_call(ctx, nargs);
  768. }
  769. void duk_call_method(duk_context *ctx, duk_idx_t nargs)
  770. {
  771. gJSVM.duk_call_method(ctx, nargs);
  772. }
  773. void duk_call_prop(duk_context *ctx, duk_idx_t obj_index, duk_idx_t nargs)
  774. {
  775. gJSVM.duk_call_prop(ctx, obj_index, nargs);
  776. }
  777. duk_int_t duk_pcall(duk_context *ctx, duk_idx_t nargs)
  778. {
  779. return gJSVM.duk_pcall(ctx, nargs);
  780. }
  781. duk_int_t duk_pcall_method(duk_context *ctx, duk_idx_t nargs)
  782. {
  783. return gJSVM.duk_pcall_method(ctx, nargs);
  784. }
  785. duk_int_t duk_pcall_prop(duk_context *ctx, duk_idx_t obj_index, duk_idx_t nargs)
  786. {
  787. return gJSVM.duk_pcall_prop(ctx, obj_index, nargs);
  788. }
  789. void duk_new(duk_context *ctx, duk_idx_t nargs)
  790. {
  791. gJSVM.duk_new(ctx, nargs);
  792. }
  793. duk_int_t duk_safe_call(duk_context *ctx, duk_safe_call_function func, duk_idx_t nargs, duk_idx_t nrets)
  794. {
  795. return gJSVM.duk_safe_call(ctx, func, nargs, nrets);
  796. }
  797. duk_int_t duk_eval_raw(duk_context *ctx, const char *src_buffer, duk_size_t src_length, duk_uint_t flags)
  798. {
  799. return gJSVM.duk_eval_raw(ctx, src_buffer, src_length, flags);
  800. }
  801. duk_int_t duk_compile_raw(duk_context *ctx, const char *src_buffer, duk_size_t src_length, duk_uint_t flags)
  802. {
  803. return gJSVM.duk_compile_raw(ctx, src_buffer, src_length, flags);
  804. }
  805. void duk_log(duk_context *ctx, duk_int_t level, const char *fmt, ...)
  806. {
  807. va_list arglist;
  808. va_start(arglist, fmt);
  809. gJSVM.duk_log(ctx, level, fmt, arglist);
  810. va_end(arglist);
  811. }
  812. void duk_log_va(duk_context *ctx, duk_int_t level, const char *fmt, va_list ap)
  813. {
  814. gJSVM.duk_log_va(ctx, level, fmt, ap);
  815. }
  816. void duk_push_context_dump(duk_context *ctx)
  817. {
  818. gJSVM.duk_push_context_dump(ctx);
  819. }
  820. void duk_debugger_attach(duk_context *ctx,
  821. duk_debug_read_function read_cb,
  822. duk_debug_write_function write_cb,
  823. duk_debug_peek_function peek_cb,
  824. duk_debug_read_flush_function read_flush_cb,
  825. duk_debug_write_flush_function write_flush_cb,
  826. duk_debug_detached_function detached_cb,
  827. void *udata)
  828. {
  829. gJSVM.duk_debugger_attach(ctx, read_cb, write_cb, peek_cb, read_flush_cb, write_flush_cb, detached_cb, udata);
  830. }
  831. void duk_debugger_detach(duk_context *ctx)
  832. {
  833. gJSVM.duk_debugger_detach(ctx);
  834. }
  835. void duk_debugger_cooperate(duk_context *ctx)
  836. {
  837. gJSVM.duk_debugger_cooperate(ctx);
  838. }
  839. }
  840. }