Home | History | Annotate | only in /external/pdfium/fxjs
Up to higher level directory
NameDateSize
cfxjse_arguments.cpp21-Aug-20181.9K
cfxjse_arguments.h21-Aug-20181.1K
cfxjse_class.cpp21-Aug-201811.7K
cfxjse_class.h21-Aug-20181.3K
cfxjse_context.cpp21-Aug-201810.1K
cfxjse_context.h21-Aug-20181.8K
cfxjse_engine.cpp21-Aug-201826.7K
cfxjse_engine.h21-Aug-20185.1K
cfxjse_formcalc_context.cpp21-Aug-2018203.3K
cfxjse_formcalc_context.h21-Aug-201821.4K
cfxjse_formcalc_context_embeddertest.cpp21-Aug-201843.4K
cfxjse_isolatetracker.h21-Aug-20181.7K
cfxjse_resolveprocessor.cpp21-Aug-201825.2K
cfxjse_resolveprocessor.h21-Aug-20182.5K
cfxjse_runtimedata.cpp21-Aug-20181.7K
cfxjse_runtimedata.h21-Aug-2018965
cfxjse_value.cpp21-Aug-201814.5K
cfxjse_value.h21-Aug-20183K
cjs_annot.cpp21-Aug-20183.3K
cjs_annot.h21-Aug-20181.4K
cjs_app.cpp21-Aug-201818.8K
cjs_app.h21-Aug-20186.6K
cjs_border.cpp21-Aug-2018813
cjs_border.h21-Aug-2018645
cjs_color.cpp21-Aug-201810.1K
cjs_color.h21-Aug-20183.8K
cjs_console.cpp21-Aug-20181.8K
cjs_console.h21-Aug-20181.4K
cjs_delaydata.cpp21-Aug-2018449
cjs_delaydata.h21-Aug-2018880
cjs_display.cpp21-Aug-2018765
cjs_display.h21-Aug-2018651
cjs_document.cpp21-Aug-201850.3K
cjs_document.h21-Aug-201814.2K
cjs_embedobj.cpp21-Aug-2018416
cjs_embedobj.h21-Aug-2018620
cjs_event.cpp21-Aug-20189.8K
cjs_event.h21-Aug-20184.1K
cjs_event_context.cpp21-Aug-201810K
cjs_event_context.h21-Aug-20185.7K
cjs_event_context_stub.cpp21-Aug-2018422
cjs_event_context_stub.h21-Aug-20185.2K
cjs_eventhandler.cpp21-Aug-201818K
cjs_eventhandler.h21-Aug-20186.4K
cjs_field.cpp21-Aug-201886.1K
cjs_field.h21-Aug-201818.6K
cjs_font.cpp21-Aug-20181.3K
cjs_font.h21-Aug-2018633
cjs_global.cpp21-Aug-201821.6K
cjs_global.h21-Aug-20181.4K
cjs_globalarrays.cpp21-Aug-20183.4K
cjs_globalarrays.h21-Aug-2018486
cjs_globalconsts.cpp21-Aug-20182K
cjs_globalconsts.h21-Aug-2018486
cjs_globaldata.cpp21-Aug-201812.4K
cjs_globaldata.h21-Aug-20182.5K
cjs_globalvariablearray.cpp21-Aug-20182.3K
cjs_globalvariablearray.h21-Aug-2018735
cjs_highlight.cpp21-Aug-2018778
cjs_highlight.h21-Aug-2018663
cjs_icon.cpp21-Aug-20181.1K
cjs_icon.h21-Aug-20181.1K
cjs_keyvalue.cpp21-Aug-2018340
cjs_keyvalue.h21-Aug-2018693
cjs_object.cpp21-Aug-20181.7K
cjs_object.h21-Aug-20181.9K
cjs_position.cpp21-Aug-2018914
cjs_position.h21-Aug-2018657
cjs_printparamsobj.cpp21-Aug-2018927
cjs_printparamsobj.h21-Aug-2018972
cjs_publicmethods.cpp21-Aug-201851.3K
cjs_publicmethods.h21-Aug-20186.5K
cjs_publicmethods_embeddertest.cpp21-Aug-20185.4K
cjs_publicmethods_unittest.cpp21-Aug-20181.4K
cjs_report.cpp21-Aug-20181.2K
cjs_report.h21-Aug-20181.1K
cjs_return.cpp21-Aug-2018595
cjs_return.h21-Aug-2018876
cjs_runtime.cpp21-Aug-20188.6K
cjs_runtime.h21-Aug-20182.3K
cjs_runtimestub.cpp21-Aug-20181.6K
cjs_scalehow.cpp21-Aug-2018692
cjs_scalehow.h21-Aug-2018657
cjs_scalewhen.cpp21-Aug-2018774
cjs_scalewhen.h21-Aug-2018663
cjs_style.cpp21-Aug-2018848
cjs_style.h21-Aug-2018639
cjs_timerobj.cpp21-Aug-2018885
cjs_timerobj.h21-Aug-2018955
cjs_util.cpp21-Aug-201814K
cjs_util.h21-Aug-20181.8K
cjs_util_unittest.cpp21-Aug-20182.9K
cjs_v8.cpp21-Aug-20187.5K
cjs_v8.h21-Aug-20183.2K
cjs_zoomtype.cpp21-Aug-2018955
cjs_zoomtype.h21-Aug-2018657
CJX_Define.h21-Aug-20181.4K
DEPS21-Aug-2018165
fxjs_v8.cpp21-Aug-201819.6K
fxjs_v8.h21-Aug-20186.4K
fxjs_v8_embeddertest.cpp21-Aug-20188K
fxjse.h21-Aug-20182.1K
global_timer.cpp21-Aug-20182.2K
global_timer.h21-Aug-20181.4K
ijs_event_context.h21-Aug-20186K
ijs_runtime.h21-Aug-20181.4K
JS_Define.cpp21-Aug-20188.4K
JS_Define.h21-Aug-20186.1K
js_resources.cpp21-Aug-20182.6K
js_resources.h21-Aug-20181K
README21-Aug-20181.5K
xfa/21-Aug-2018

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