• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

xfa/22-Nov-2023-15,97311,145

CJX_Define.hD22-Nov-20231.4 KiB3825

DEPSD22-Nov-2023165 1211

JS_Define.cppD22-Nov-20238.4 KiB309255

JS_Define.hD22-Nov-20236.1 KiB167126

READMED22-Nov-20231.5 KiB3429

cfxjse_arguments.cppD22-Nov-20231.9 KiB6042

cfxjse_arguments.hD22-Nov-20231.1 KiB3825

cfxjse_class.cppD22-Nov-202311.7 KiB302262

cfxjse_class.hD22-Nov-20231.3 KiB4429

cfxjse_context.cppD22-Nov-202310.1 KiB275237

cfxjse_context.hD22-Nov-20231.8 KiB5940

cfxjse_engine.cppD22-Nov-202326.7 KiB756651

cfxjse_engine.hD22-Nov-20235.1 KiB12299

cfxjse_formcalc_context.cppD22-Nov-2023203.3 KiB6,2555,447

cfxjse_formcalc_context.hD22-Nov-202321.4 KiB446422

cfxjse_formcalc_context_embeddertest.cppD22-Nov-202343.4 KiB1,4471,099

cfxjse_isolatetracker.hD22-Nov-20231.7 KiB5639

cfxjse_resolveprocessor.cppD22-Nov-202325.2 KiB747673

cfxjse_resolveprocessor.hD22-Nov-20232.5 KiB7859

cfxjse_runtimedata.cppD22-Nov-20231.7 KiB5134

cfxjse_runtimedata.hD22-Nov-2023965 3720

cfxjse_value.cppD22-Nov-202314.5 KiB429351

cfxjse_value.hD22-Nov-20233 KiB9979

cjs_annot.cppD22-Nov-20233.3 KiB11280

cjs_annot.hD22-Nov-20231.4 KiB5132

cjs_app.cppD22-Nov-202318.8 KiB578449

cjs_app.hD22-Nov-20236.6 KiB170134

cjs_border.cppD22-Nov-2023813 2413

cjs_border.hD22-Nov-2023645 2513

cjs_color.cppD22-Nov-202310.1 KiB303242

cjs_color.hD22-Nov-20233.8 KiB11684

cjs_console.cppD22-Nov-20231.8 KiB5435

cjs_console.hD22-Nov-20231.4 KiB4832

cjs_delaydata.cppD22-Nov-2023449 134

cjs_delaydata.hD22-Nov-2023880 3624

cjs_display.cppD22-Nov-2023765 2312

cjs_display.hD22-Nov-2023651 2513

cjs_document.cppD22-Nov-202350.3 KiB1,5001,213

cjs_document.hD22-Nov-202314.2 KiB331273

cjs_embedobj.cppD22-Nov-2023416 144

cjs_embedobj.hD22-Nov-2023620 2613

cjs_event.cppD22-Nov-20239.8 KiB308235

cjs_event.hD22-Nov-20234.1 KiB11278

cjs_event_context.cppD22-Nov-202310 KiB282227

cjs_event_context.hD22-Nov-20235.7 KiB137120

cjs_event_context_stub.cppD22-Nov-2023422 135

cjs_event_context_stub.hD22-Nov-20235.2 KiB119106

cjs_eventhandler.cppD22-Nov-202318 KiB655556

cjs_eventhandler.hD22-Nov-20236.4 KiB198172

cjs_field.cppD22-Nov-202386.1 KiB2,6742,237

cjs_field.hD22-Nov-202318.6 KiB439358

cjs_font.cppD22-Nov-20231.3 KiB3221

cjs_font.hD22-Nov-2023633 2513

cjs_global.cppD22-Nov-202321.6 KiB616540

cjs_global.hD22-Nov-20231.4 KiB4327

cjs_globalarrays.cppD22-Nov-20233.4 KiB7548

cjs_globalarrays.hD22-Nov-2023486 188

cjs_globalconsts.cppD22-Nov-20232 KiB4832

cjs_globalconsts.hD22-Nov-2023486 188

cjs_globaldata.cppD22-Nov-202312.4 KiB397326

cjs_globaldata.hD22-Nov-20232.5 KiB7856

cjs_globalvariablearray.cppD22-Nov-20232.3 KiB6955

cjs_globalvariablearray.hD22-Nov-2023735 3017

cjs_highlight.cppD22-Nov-2023778 2312

cjs_highlight.hD22-Nov-2023663 2513

cjs_icon.cppD22-Nov-20231.1 KiB3922

cjs_icon.hD22-Nov-20231.1 KiB4326

cjs_keyvalue.cppD22-Nov-2023340 123

cjs_keyvalue.hD22-Nov-2023693 2917

cjs_object.cppD22-Nov-20231.7 KiB5135

cjs_object.hD22-Nov-20231.9 KiB7250

cjs_position.cppD22-Nov-2023914 2615

cjs_position.hD22-Nov-2023657 2513

cjs_printparamsobj.cppD22-Nov-2023927 3522

cjs_printparamsobj.hD22-Nov-2023972 4228

cjs_publicmethods.cppD22-Nov-202351.3 KiB1,7411,478

cjs_publicmethods.hD22-Nov-20236.5 KiB161142

cjs_publicmethods_embeddertest.cppD22-Nov-20235.4 KiB163117

cjs_publicmethods_unittest.cppD22-Nov-20231.4 KiB5235

cjs_report.cppD22-Nov-20231.2 KiB4324

cjs_report.hD22-Nov-20231.1 KiB4226

cjs_return.cppD22-Nov-2023595 197

cjs_return.hD22-Nov-2023876 3521

cjs_runtime.cppD22-Nov-20238.6 KiB293230

cjs_runtime.hD22-Nov-20232.3 KiB7448

cjs_runtimestub.cppD22-Nov-20231.6 KiB6139

cjs_scalehow.cppD22-Nov-2023692 2110

cjs_scalehow.hD22-Nov-2023657 2513

cjs_scalewhen.cppD22-Nov-2023774 2312

cjs_scalewhen.hD22-Nov-2023663 2513

cjs_style.cppD22-Nov-2023848 2413

cjs_style.hD22-Nov-2023639 2513

cjs_timerobj.cppD22-Nov-2023885 3317

cjs_timerobj.hD22-Nov-2023955 3923

cjs_util.cppD22-Nov-202314 KiB472396

cjs_util.hD22-Nov-20231.8 KiB6443

cjs_util_unittest.cppD22-Nov-20232.9 KiB11460

cjs_v8.cppD22-Nov-20237.5 KiB242195

cjs_v8.hD22-Nov-20233.2 KiB9468

cjs_zoomtype.cppD22-Nov-2023955 2615

cjs_zoomtype.hD22-Nov-2023657 2513

fxjs_v8.cppD22-Nov-202319.6 KiB555454

fxjs_v8.hD22-Nov-20236.4 KiB196131

fxjs_v8_embeddertest.cppD22-Nov-20238 KiB229187

fxjse.hD22-Nov-20232.1 KiB7149

global_timer.cppD22-Nov-20232.2 KiB8157

global_timer.hD22-Nov-20231.4 KiB5134

ijs_event_context.hD22-Nov-20236 KiB134111

ijs_runtime.hD22-Nov-20231.4 KiB4529

js_resources.cppD22-Nov-20232.6 KiB7162

js_resources.hD22-Nov-20231 KiB4231

README

1There are two separate wrappers for V8 here.  One is called FXJS, and
2it is used by the non-XFA code.  The other is called FXJSE, and it is
3used only by the XFA code.  Additionally FXJSE may request services
4from FXJS to bridge the two.
5
6Both the FXJS and FXJSE binding code needs to be replaced by something
7saner, perhaps Gin or perhaps some IDL. See
8  https://bugs.chromium.org/p/pdfium/issues/detail?id=716
9for progress on the issue.
10
11FXJS binds objects by sticking a pointer to a CFXJS_PerObjectData in
12the V8 object's internal slot.  FXJSE binds objects by sticking a
13pointer to either an actual v8 function object or a CFXJSE_HostObject
14in the V8 object's internal slot, depending upon whether the object
15represents (in some notion) a "class" or an "instance". Also, V8 objects
16bound in one library may unexpectedly arrive at the other given a script
17that's trying to mess with us.
18
19To distinguish these cases, we use two internal slots for all bound
20objects, regardless of the FXJS/FXJSE distinction.  Slot 0 is the
21tag and contains either:
22  kPerObjectDataTag for FXJS objects, or
23  g_FXJSETagString for FXJSE Host objects, or
24  One of 4 specific FXJSE_CLASS_DESCRIPTOR globals for FXJSE classes:
25    GlobalClassDescriptor
26    NormalClassDescriptor
27    VariablesClassDescriptor
28    formcalc_fm2js_descriptor
29
30Slot 1's contents are determined by these tags:
31  kPerObjectDataTag means to expect a CFXJS_PerObjectData.
32  g_FXJSETagString means to expect a CFXJSE_HostObject.
33  A FXJSE_CLASS_DESCRIPTOR pointer means to expect a v8 function.
34