Home | History | Annotate | only in /external/pdfium/fxjs
Up to higher level directory
NameDateSize
cfxjse_arguments.cpp22-Oct-20201.9K
cfxjse_arguments.h22-Oct-20201.1K
cfxjse_class.cpp22-Oct-202011.7K
cfxjse_class.h22-Oct-20201.3K
cfxjse_context.cpp22-Oct-202010.1K
cfxjse_context.h22-Oct-20201.8K
cfxjse_engine.cpp22-Oct-202026.7K
cfxjse_engine.h22-Oct-20205.1K
cfxjse_formcalc_context.cpp22-Oct-2020203.3K
cfxjse_formcalc_context.h22-Oct-202021.4K
cfxjse_formcalc_context_embeddertest.cpp22-Oct-202043.4K
cfxjse_isolatetracker.h22-Oct-20201.7K
cfxjse_resolveprocessor.cpp22-Oct-202025.2K
cfxjse_resolveprocessor.h22-Oct-20202.5K
cfxjse_runtimedata.cpp22-Oct-20201.7K
cfxjse_runtimedata.h22-Oct-2020965
cfxjse_value.cpp22-Oct-202014.5K
cfxjse_value.h22-Oct-20203K
cjs_annot.cpp22-Oct-20203.3K
cjs_annot.h22-Oct-20201.4K
cjs_app.cpp22-Oct-202018.8K
cjs_app.h22-Oct-20206.6K
cjs_border.cpp22-Oct-2020813
cjs_border.h22-Oct-2020645
cjs_color.cpp22-Oct-202010.1K
cjs_color.h22-Oct-20203.8K
cjs_console.cpp22-Oct-20201.8K
cjs_console.h22-Oct-20201.4K
cjs_delaydata.cpp22-Oct-2020449
cjs_delaydata.h22-Oct-2020880
cjs_display.cpp22-Oct-2020765
cjs_display.h22-Oct-2020651
cjs_document.cpp22-Oct-202050.3K
cjs_document.h22-Oct-202014.2K
cjs_embedobj.cpp22-Oct-2020416
cjs_embedobj.h22-Oct-2020620
cjs_event.cpp22-Oct-20209.8K
cjs_event.h22-Oct-20204.1K
cjs_event_context.cpp22-Oct-202010K
cjs_event_context.h22-Oct-20205.7K
cjs_event_context_stub.cpp22-Oct-2020422
cjs_event_context_stub.h22-Oct-20205.2K
cjs_eventhandler.cpp22-Oct-202018K
cjs_eventhandler.h22-Oct-20206.4K
cjs_field.cpp22-Oct-202086.1K
cjs_field.h22-Oct-202018.6K
cjs_font.cpp22-Oct-20201.3K
cjs_font.h22-Oct-2020633
cjs_global.cpp22-Oct-202021.6K
cjs_global.h22-Oct-20201.4K
cjs_globalarrays.cpp22-Oct-20203.4K
cjs_globalarrays.h22-Oct-2020486
cjs_globalconsts.cpp22-Oct-20202K
cjs_globalconsts.h22-Oct-2020486
cjs_globaldata.cpp22-Oct-202012.4K
cjs_globaldata.h22-Oct-20202.5K
cjs_globalvariablearray.cpp22-Oct-20202.3K
cjs_globalvariablearray.h22-Oct-2020735
cjs_highlight.cpp22-Oct-2020778
cjs_highlight.h22-Oct-2020663
cjs_icon.cpp22-Oct-20201.1K
cjs_icon.h22-Oct-20201.1K
cjs_keyvalue.cpp22-Oct-2020340
cjs_keyvalue.h22-Oct-2020693
cjs_object.cpp22-Oct-20201.7K
cjs_object.h22-Oct-20201.9K
cjs_position.cpp22-Oct-2020914
cjs_position.h22-Oct-2020657
cjs_printparamsobj.cpp22-Oct-2020927
cjs_printparamsobj.h22-Oct-2020972
cjs_publicmethods.cpp22-Oct-202051.3K
cjs_publicmethods.h22-Oct-20206.5K
cjs_publicmethods_embeddertest.cpp22-Oct-20205.4K
cjs_publicmethods_unittest.cpp22-Oct-20201.4K
cjs_report.cpp22-Oct-20201.2K
cjs_report.h22-Oct-20201.1K
cjs_return.cpp22-Oct-2020595
cjs_return.h22-Oct-2020876
cjs_runtime.cpp22-Oct-20208.6K
cjs_runtime.h22-Oct-20202.3K
cjs_runtimestub.cpp22-Oct-20201.6K
cjs_scalehow.cpp22-Oct-2020692
cjs_scalehow.h22-Oct-2020657
cjs_scalewhen.cpp22-Oct-2020774
cjs_scalewhen.h22-Oct-2020663
cjs_style.cpp22-Oct-2020848
cjs_style.h22-Oct-2020639
cjs_timerobj.cpp22-Oct-2020885
cjs_timerobj.h22-Oct-2020955
cjs_util.cpp22-Oct-202014K
cjs_util.h22-Oct-20201.8K
cjs_util_unittest.cpp22-Oct-20202.9K
cjs_v8.cpp22-Oct-20207.5K
cjs_v8.h22-Oct-20203.2K
cjs_zoomtype.cpp22-Oct-2020955
cjs_zoomtype.h22-Oct-2020657
CJX_Define.h22-Oct-20201.4K
DEPS22-Oct-2020165
fxjs_v8.cpp22-Oct-202019.6K
fxjs_v8.h22-Oct-20206.4K
fxjs_v8_embeddertest.cpp22-Oct-20208K
fxjse.h22-Oct-20202.1K
global_timer.cpp22-Oct-20202.2K
global_timer.h22-Oct-20201.4K
ijs_event_context.h22-Oct-20206K
ijs_runtime.h22-Oct-20201.4K
JS_Define.cpp22-Oct-20208.4K
JS_Define.h22-Oct-20206.1K
js_resources.cpp22-Oct-20202.6K
js_resources.h22-Oct-20201K
README22-Oct-20201.5K
xfa/22-Oct-2020

README

      1 There are two separate wrappers for V8 here.  One is called FXJS, and
      2 it is used by the non-XFA code.  The other is called FXJSE, and it is
      3 used only by the XFA code.  Additionally FXJSE may request services
      4 from FXJS to bridge the two.
      5 
      6 Both the FXJS and FXJSE binding code needs to be replaced by something
      7 saner, perhaps Gin or perhaps some IDL. See
      8   https://bugs.chromium.org/p/pdfium/issues/detail?id=716
      9 for progress on the issue.
     10 
     11 FXJS binds objects by sticking a pointer to a CFXJS_PerObjectData in
     12 the V8 object's internal slot.  FXJSE binds objects by sticking a
     13 pointer to either an actual v8 function object or a CFXJSE_HostObject
     14 in the V8 object's internal slot, depending upon whether the object
     15 represents (in some notion) a "class" or an "instance". Also, V8 objects
     16 bound in one library may unexpectedly arrive at the other given a script
     17 that's trying to mess with us.
     18 
     19 To distinguish these cases, we use two internal slots for all bound
     20 objects, regardless of the FXJS/FXJSE distinction.  Slot 0 is the
     21 tag 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 
     30 Slot 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