distil 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +28 -0
- data/VERSION +1 -0
- data/bin/distil +45 -0
- data/distil.gemspec +586 -0
- data/lib/bootstrap-template.js +56 -0
- data/lib/configurable.rb +125 -0
- data/lib/file-set.rb +42 -0
- data/lib/file-types/css-file.rb +75 -0
- data/lib/file-types/html-file.rb +11 -0
- data/lib/file-types/javascript-file.rb +98 -0
- data/lib/file-types/json-file.rb +14 -0
- data/lib/file-types/nib-file.rb +9 -0
- data/lib/jsdoc.conf +18 -0
- data/lib/jsl.conf +121 -0
- data/lib/project.rb +96 -0
- data/lib/source-file.rb +181 -0
- data/lib/target.rb +96 -0
- data/lib/task.rb +239 -0
- data/lib/tasks/copy-task.rb +21 -0
- data/lib/tasks/css-task.rb +18 -0
- data/lib/tasks/javascript-task.rb +125 -0
- data/lib/tasks/multiple-output-task.rb +134 -0
- data/lib/tasks/nib-task.rb +83 -0
- data/lib/tasks/output-task.rb +73 -0
- data/lib/tasks/single-output-task.rb +83 -0
- data/lib/tasks/test-task.rb +280 -0
- data/lib/test/HtmlTestReporter.js +127 -0
- data/lib/test/Test.js +248 -0
- data/lib/test/TestReporter.js +79 -0
- data/lib/test/TestRunner.js +132 -0
- data/lib/test/browser.rb +97 -0
- data/lib/test/scriptwrapper.html +10 -0
- data/lib/test/unittest.html +127 -0
- data/vendor/Makefile +35 -0
- data/vendor/extconf.rb +3 -0
- data/vendor/jsdoc-extras/plugins/distil-plugin.js +142 -0
- data/vendor/jsdoc-extras/plugins/interface-plugin.js +36 -0
- data/vendor/jsdoc-extras/templates/coherent/allclasses.tmpl +17 -0
- data/vendor/jsdoc-extras/templates/coherent/allfiles.tmpl +53 -0
- data/vendor/jsdoc-extras/templates/coherent/class.tmpl +803 -0
- data/vendor/jsdoc-extras/templates/coherent/index.tmpl +37 -0
- data/vendor/jsdoc-extras/templates/coherent/publish.js +242 -0
- data/vendor/jsdoc-extras/templates/coherent/showdown.js +421 -0
- data/vendor/jsdoc-extras/templates/coherent/static/code-footer.html +3 -0
- data/vendor/jsdoc-extras/templates/coherent/static/code-header.html +7 -0
- data/vendor/jsdoc-extras/templates/coherent/static/default.css +297 -0
- data/vendor/jsdoc-extras/templates/coherent/static/header.html +2 -0
- data/vendor/jsdoc-extras/templates/coherent/static/index.html +19 -0
- data/vendor/jsdoc-extras/templates/coherent/symbol.tmpl +35 -0
- data/vendor/jsdoc-toolkit/README.txt +183 -0
- data/vendor/jsdoc-toolkit/app/frame/Chain.js +102 -0
- data/vendor/jsdoc-toolkit/app/frame/Dumper.js +144 -0
- data/vendor/jsdoc-toolkit/app/frame/Hash.js +84 -0
- data/vendor/jsdoc-toolkit/app/frame/Link.js +171 -0
- data/vendor/jsdoc-toolkit/app/frame/Namespace.js +10 -0
- data/vendor/jsdoc-toolkit/app/frame/Opt.js +134 -0
- data/vendor/jsdoc-toolkit/app/frame/Reflection.js +26 -0
- data/vendor/jsdoc-toolkit/app/frame/String.js +93 -0
- data/vendor/jsdoc-toolkit/app/frame/Testrun.js +129 -0
- data/vendor/jsdoc-toolkit/app/frame.js +33 -0
- data/vendor/jsdoc-toolkit/app/handlers/FOODOC.js +26 -0
- data/vendor/jsdoc-toolkit/app/handlers/XMLDOC/DomReader.js +159 -0
- data/vendor/jsdoc-toolkit/app/handlers/XMLDOC/XMLDoc.js +16 -0
- data/vendor/jsdoc-toolkit/app/handlers/XMLDOC/XMLParse.js +292 -0
- data/vendor/jsdoc-toolkit/app/handlers/XMLDOC.js +26 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/DocComment.js +204 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/DocTag.js +300 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/JsDoc.js +126 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/JsPlate.js +109 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/Lang.js +144 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/Parser.js +144 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/PluginManager.js +33 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/Symbol.js +644 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/SymbolSet.js +241 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/TextStream.js +41 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/Token.js +18 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/TokenReader.js +332 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/TokenStream.js +133 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/Util.js +32 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC/Walker.js +499 -0
- data/vendor/jsdoc-toolkit/app/lib/JSDOC.js +106 -0
- data/vendor/jsdoc-toolkit/app/main.js +129 -0
- data/vendor/jsdoc-toolkit/app/plugins/commentSrcJson.js +20 -0
- data/vendor/jsdoc-toolkit/app/plugins/frameworkPrototype.js +16 -0
- data/vendor/jsdoc-toolkit/app/plugins/functionCall.js +10 -0
- data/vendor/jsdoc-toolkit/app/plugins/publishSrcHilite.js +54 -0
- data/vendor/jsdoc-toolkit/app/plugins/symbolLink.js +10 -0
- data/vendor/jsdoc-toolkit/app/plugins/tagParamConfig.js +31 -0
- data/vendor/jsdoc-toolkit/app/plugins/tagSynonyms.js +43 -0
- data/vendor/jsdoc-toolkit/app/run.js +348 -0
- data/vendor/jsdoc-toolkit/app/t/TestDoc.js +144 -0
- data/vendor/jsdoc-toolkit/app/t/runner.js +13 -0
- data/vendor/jsdoc-toolkit/app/test/addon.js +24 -0
- data/vendor/jsdoc-toolkit/app/test/anon_inner.js +14 -0
- data/vendor/jsdoc-toolkit/app/test/augments.js +31 -0
- data/vendor/jsdoc-toolkit/app/test/augments2.js +26 -0
- data/vendor/jsdoc-toolkit/app/test/borrows.js +46 -0
- data/vendor/jsdoc-toolkit/app/test/borrows2.js +23 -0
- data/vendor/jsdoc-toolkit/app/test/config.js +22 -0
- data/vendor/jsdoc-toolkit/app/test/constructs.js +18 -0
- data/vendor/jsdoc-toolkit/app/test/encoding.js +10 -0
- data/vendor/jsdoc-toolkit/app/test/encoding_other.js +12 -0
- data/vendor/jsdoc-toolkit/app/test/event.js +54 -0
- data/vendor/jsdoc-toolkit/app/test/exports.js +14 -0
- data/vendor/jsdoc-toolkit/app/test/functions_anon.js +39 -0
- data/vendor/jsdoc-toolkit/app/test/functions_nested.js +33 -0
- data/vendor/jsdoc-toolkit/app/test/global.js +13 -0
- data/vendor/jsdoc-toolkit/app/test/globals.js +25 -0
- data/vendor/jsdoc-toolkit/app/test/ignore.js +10 -0
- data/vendor/jsdoc-toolkit/app/test/inner.js +16 -0
- data/vendor/jsdoc-toolkit/app/test/jsdoc_test.js +477 -0
- data/vendor/jsdoc-toolkit/app/test/lend.js +33 -0
- data/vendor/jsdoc-toolkit/app/test/memberof.js +19 -0
- data/vendor/jsdoc-toolkit/app/test/memberof2.js +38 -0
- data/vendor/jsdoc-toolkit/app/test/memberof3.js +33 -0
- data/vendor/jsdoc-toolkit/app/test/memberof_constructor.js +17 -0
- data/vendor/jsdoc-toolkit/app/test/module.js +17 -0
- data/vendor/jsdoc-toolkit/app/test/name.js +19 -0
- data/vendor/jsdoc-toolkit/app/test/namespace_nested.js +23 -0
- data/vendor/jsdoc-toolkit/app/test/nocode.js +13 -0
- data/vendor/jsdoc-toolkit/app/test/oblit_anon.js +20 -0
- data/vendor/jsdoc-toolkit/app/test/overview.js +20 -0
- data/vendor/jsdoc-toolkit/app/test/param_inline.js +37 -0
- data/vendor/jsdoc-toolkit/app/test/params_optional.js +8 -0
- data/vendor/jsdoc-toolkit/app/test/prototype.js +17 -0
- data/vendor/jsdoc-toolkit/app/test/prototype_nested.js +9 -0
- data/vendor/jsdoc-toolkit/app/test/prototype_oblit.js +13 -0
- data/vendor/jsdoc-toolkit/app/test/prototype_oblit_constructor.js +24 -0
- data/vendor/jsdoc-toolkit/app/test/public.js +10 -0
- data/vendor/jsdoc-toolkit/app/test/scripts/code.js +5 -0
- data/vendor/jsdoc-toolkit/app/test/scripts/notcode.txt +5 -0
- data/vendor/jsdoc-toolkit/app/test/shared.js +42 -0
- data/vendor/jsdoc-toolkit/app/test/shared2.js +2 -0
- data/vendor/jsdoc-toolkit/app/test/shortcuts.js +22 -0
- data/vendor/jsdoc-toolkit/app/test/static_this.js +13 -0
- data/vendor/jsdoc-toolkit/app/test/synonyms.js +31 -0
- data/vendor/jsdoc-toolkit/app/test/tosource.js +23 -0
- data/vendor/jsdoc-toolkit/app/test/variable_redefine.js +14 -0
- data/vendor/jsdoc-toolkit/app/test.js +342 -0
- data/vendor/jsdoc-toolkit/changes.txt +116 -0
- data/vendor/jsdoc-toolkit/conf/sample.conf +31 -0
- data/vendor/jsdoc-toolkit/java/build.xml +36 -0
- data/vendor/jsdoc-toolkit/java/build_1.4.xml +36 -0
- data/vendor/jsdoc-toolkit/java/classes/js.jar +0 -0
- data/vendor/jsdoc-toolkit/java/src/JsDebugRun.java +21 -0
- data/vendor/jsdoc-toolkit/java/src/JsRun.java +21 -0
- data/vendor/jsdoc-toolkit/jsdebug.jar +0 -0
- data/vendor/jsdoc-toolkit/jsrun.jar +0 -0
- data/vendor/jsdoc-toolkit/jsrun.sh +53 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/allclasses.tmpl +17 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/allfiles.tmpl +56 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/class.tmpl +649 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/index.tmpl +39 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/publish.js +201 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/static/code-footer.html +3 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/static/code-header.html +14 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/static/default.css +162 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/static/header.html +2 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/static/index.html +19 -0
- data/vendor/jsdoc-toolkit/templates/jsdoc/symbol.tmpl +35 -0
- data/vendor/jsl-0.3.0/src/JavaScriptLintAPI.cpp +333 -0
- data/vendor/jsl-0.3.0/src/JavaScriptLintAPI.h +86 -0
- data/vendor/jsl-0.3.0/src/Makefile.in +375 -0
- data/vendor/jsl-0.3.0/src/Makefile.ref +372 -0
- data/vendor/jsl-0.3.0/src/README.html +826 -0
- data/vendor/jsl-0.3.0/src/SpiderMonkey.rsp +12 -0
- data/vendor/jsl-0.3.0/src/_jsl_online.php +223 -0
- data/vendor/jsl-0.3.0/src/config/AIX4.1.mk +65 -0
- data/vendor/jsl-0.3.0/src/config/AIX4.2.mk +64 -0
- data/vendor/jsl-0.3.0/src/config/AIX4.3.mk +65 -0
- data/vendor/jsl-0.3.0/src/config/Darwin.mk +81 -0
- data/vendor/jsl-0.3.0/src/config/Darwin1.3.mk +81 -0
- data/vendor/jsl-0.3.0/src/config/Darwin1.4.mk +41 -0
- data/vendor/jsl-0.3.0/src/config/Darwin5.2.mk +81 -0
- data/vendor/jsl-0.3.0/src/config/Darwin5.3.mk +81 -0
- data/vendor/jsl-0.3.0/src/config/HP-UXB.10.10.mk +77 -0
- data/vendor/jsl-0.3.0/src/config/HP-UXB.10.20.mk +77 -0
- data/vendor/jsl-0.3.0/src/config/HP-UXB.11.00.mk +80 -0
- data/vendor/jsl-0.3.0/src/config/IRIX.mk +87 -0
- data/vendor/jsl-0.3.0/src/config/IRIX5.3.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/IRIX6.1.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/IRIX6.2.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/IRIX6.3.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/IRIX6.5.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/Linux_All.mk +103 -0
- data/vendor/jsl-0.3.0/src/config/Mac_OS10.0.mk +82 -0
- data/vendor/jsl-0.3.0/src/config/OSF1V4.0.mk +72 -0
- data/vendor/jsl-0.3.0/src/config/OSF1V5.0.mk +69 -0
- data/vendor/jsl-0.3.0/src/config/SunOS4.1.4.mk +101 -0
- data/vendor/jsl-0.3.0/src/config/SunOS5.3.mk +91 -0
- data/vendor/jsl-0.3.0/src/config/SunOS5.4.mk +92 -0
- data/vendor/jsl-0.3.0/src/config/SunOS5.5.1.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/SunOS5.5.mk +87 -0
- data/vendor/jsl-0.3.0/src/config/SunOS5.6.mk +89 -0
- data/vendor/jsl-0.3.0/src/config/SunOS5.7.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/SunOS5.8.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/SunOS5.9.mk +44 -0
- data/vendor/jsl-0.3.0/src/config/WINNT4.0.mk +112 -0
- data/vendor/jsl-0.3.0/src/config/WINNT5.0.mk +112 -0
- data/vendor/jsl-0.3.0/src/config/WINNT5.1.mk +112 -0
- data/vendor/jsl-0.3.0/src/config/WINNT5.2.mk +112 -0
- data/vendor/jsl-0.3.0/src/config/dgux.mk +64 -0
- data/vendor/jsl-0.3.0/src/config.mk +166 -0
- data/vendor/jsl-0.3.0/src/editline/Makefile.ref +144 -0
- data/vendor/jsl-0.3.0/src/editline/README +83 -0
- data/vendor/jsl-0.3.0/src/editline/editline.3 +175 -0
- data/vendor/jsl-0.3.0/src/editline/editline.c +1369 -0
- data/vendor/jsl-0.3.0/src/editline/editline.h +135 -0
- data/vendor/jsl-0.3.0/src/editline/sysunix.c +182 -0
- data/vendor/jsl-0.3.0/src/editline/unix.h +82 -0
- data/vendor/jsl-0.3.0/src/fdlibm/Makefile.in +127 -0
- data/vendor/jsl-0.3.0/src/fdlibm/Makefile.ref +192 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_acos.c +147 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_acosh.c +105 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_asin.c +156 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_atan2.c +165 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_atanh.c +110 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_cosh.c +133 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_exp.c +202 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_fmod.c +184 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_gamma.c +71 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_gamma_r.c +70 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_hypot.c +173 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_j0.c +524 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_j1.c +523 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_jn.c +315 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_lgamma.c +71 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_lgamma_r.c +347 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_log.c +184 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_log10.c +134 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_pow.c +386 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_rem_pio2.c +221 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_remainder.c +120 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_scalb.c +89 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_sinh.c +122 -0
- data/vendor/jsl-0.3.0/src/fdlibm/e_sqrt.c +497 -0
- data/vendor/jsl-0.3.0/src/fdlibm/fdlibm.dsp +160 -0
- data/vendor/jsl-0.3.0/src/fdlibm/fdlibm.h +273 -0
- data/vendor/jsl-0.3.0/src/fdlibm/fdlibm.mak +1453 -0
- data/vendor/jsl-0.3.0/src/fdlibm/fdlibm.mdp +0 -0
- data/vendor/jsl-0.3.0/src/fdlibm/k_cos.c +134 -0
- data/vendor/jsl-0.3.0/src/fdlibm/k_rem_pio2.c +354 -0
- data/vendor/jsl-0.3.0/src/fdlibm/k_sin.c +114 -0
- data/vendor/jsl-0.3.0/src/fdlibm/k_standard.c +785 -0
- data/vendor/jsl-0.3.0/src/fdlibm/k_tan.c +170 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_asinh.c +101 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_atan.c +175 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_cbrt.c +133 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_ceil.c +120 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_copysign.c +72 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_cos.c +118 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_erf.c +356 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_expm1.c +267 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_fabs.c +70 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_finite.c +71 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_floor.c +121 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_frexp.c +99 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_ilogb.c +85 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_isnan.c +74 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_ldexp.c +66 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_lib_version.c +73 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_log1p.c +211 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_logb.c +79 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_matherr.c +64 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_modf.c +132 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_nextafter.c +124 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_rint.c +131 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_scalbn.c +107 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_signgam.c +40 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_significand.c +68 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_sin.c +118 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_tan.c +112 -0
- data/vendor/jsl-0.3.0/src/fdlibm/s_tanh.c +122 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_acos.c +78 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_acosh.c +78 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_asin.c +80 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_atan2.c +79 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_atanh.c +81 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_cosh.c +77 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_exp.c +88 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_fmod.c +78 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_gamma.c +85 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_gamma_r.c +81 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_hypot.c +78 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_j0.c +105 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_j1.c +106 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_jn.c +128 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_lgamma.c +85 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_lgamma_r.c +81 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_log.c +78 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_log10.c +81 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_pow.c +99 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_remainder.c +77 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_scalb.c +95 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_sinh.c +77 -0
- data/vendor/jsl-0.3.0/src/fdlibm/w_sqrt.c +77 -0
- data/vendor/jsl-0.3.0/src/js.c +2447 -0
- data/vendor/jsl-0.3.0/src/js.dsp +420 -0
- data/vendor/jsl-0.3.0/src/js.mak +4025 -0
- data/vendor/jsl-0.3.0/src/js.mdp +0 -0
- data/vendor/jsl-0.3.0/src/js.msg +291 -0
- data/vendor/jsl-0.3.0/src/js.pkg +2 -0
- data/vendor/jsl-0.3.0/src/js3240.rc +79 -0
- data/vendor/jsl-0.3.0/src/jsOS240.def +654 -0
- data/vendor/jsl-0.3.0/src/jsapi.c +4405 -0
- data/vendor/jsl-0.3.0/src/jsapi.h +1856 -0
- data/vendor/jsl-0.3.0/src/jsarena.c +567 -0
- data/vendor/jsl-0.3.0/src/jsarena.h +302 -0
- data/vendor/jsl-0.3.0/src/jsarray.c +1428 -0
- data/vendor/jsl-0.3.0/src/jsarray.h +77 -0
- data/vendor/jsl-0.3.0/src/jsatom.c +927 -0
- data/vendor/jsl-0.3.0/src/jsatom.h +426 -0
- data/vendor/jsl-0.3.0/src/jsbit.h +113 -0
- data/vendor/jsl-0.3.0/src/jsbool.c +220 -0
- data/vendor/jsl-0.3.0/src/jsbool.h +62 -0
- data/vendor/jsl-0.3.0/src/jsclist.h +139 -0
- data/vendor/jsl-0.3.0/src/jscntxt.c +1036 -0
- data/vendor/jsl-0.3.0/src/jscntxt.h +608 -0
- data/vendor/jsl-0.3.0/src/jscompat.h +57 -0
- data/vendor/jsl-0.3.0/src/jsconfig.h +489 -0
- data/vendor/jsl-0.3.0/src/jsconfig.mk +181 -0
- data/vendor/jsl-0.3.0/src/jscpucfg.c +377 -0
- data/vendor/jsl-0.3.0/src/jscpucfg.h +204 -0
- data/vendor/jsl-0.3.0/src/jsdate.c +2238 -0
- data/vendor/jsl-0.3.0/src/jsdate.h +118 -0
- data/vendor/jsl-0.3.0/src/jsdbgapi.c +1260 -0
- data/vendor/jsl-0.3.0/src/jsdbgapi.h +345 -0
- data/vendor/jsl-0.3.0/src/jsdhash.c +763 -0
- data/vendor/jsl-0.3.0/src/jsdhash.h +579 -0
- data/vendor/jsl-0.3.0/src/jsdtoa.c +3135 -0
- data/vendor/jsl-0.3.0/src/jsdtoa.h +130 -0
- data/vendor/jsl-0.3.0/src/jsemit.c +4851 -0
- data/vendor/jsl-0.3.0/src/jsemit.h +576 -0
- data/vendor/jsl-0.3.0/src/jsexn.c +1084 -0
- data/vendor/jsl-0.3.0/src/jsexn.h +102 -0
- data/vendor/jsl-0.3.0/src/jsfile.c +2610 -0
- data/vendor/jsl-0.3.0/src/jsfile.h +50 -0
- data/vendor/jsl-0.3.0/src/jsfile.msg +89 -0
- data/vendor/jsl-0.3.0/src/jsfun.c +2015 -0
- data/vendor/jsl-0.3.0/src/jsfun.h +158 -0
- data/vendor/jsl-0.3.0/src/jsgc.c +1441 -0
- data/vendor/jsl-0.3.0/src/jsgc.h +230 -0
- data/vendor/jsl-0.3.0/src/jshash.c +471 -0
- data/vendor/jsl-0.3.0/src/jshash.h +152 -0
- data/vendor/jsl-0.3.0/src/jsify.pl +485 -0
- data/vendor/jsl-0.3.0/src/jsinterp.c +4797 -0
- data/vendor/jsl-0.3.0/src/jsinterp.h +302 -0
- data/vendor/jsl-0.3.0/src/jsl-test.js +28 -0
- data/vendor/jsl-0.3.0/src/jsl.c +2371 -0
- data/vendor/jsl-0.3.0/src/jsl.conf +127 -0
- data/vendor/jsl-0.3.0/src/jsl.conf.old +124 -0
- data/vendor/jsl-0.3.0/src/jsl.dsp +242 -0
- data/vendor/jsl-0.3.0/src/jsl.dsw +59 -0
- data/vendor/jsl-0.3.0/src/jslibmath.h +290 -0
- data/vendor/jsl-0.3.0/src/jslock.c +1261 -0
- data/vendor/jsl-0.3.0/src/jslock.h +289 -0
- data/vendor/jsl-0.3.0/src/jslocko.asm +59 -0
- data/vendor/jsl-0.3.0/src/jslog2.c +83 -0
- data/vendor/jsl-0.3.0/src/jslong.c +281 -0
- data/vendor/jsl-0.3.0/src/jslong.h +437 -0
- data/vendor/jsl-0.3.0/src/jsmath.c +477 -0
- data/vendor/jsl-0.3.0/src/jsmath.h +55 -0
- data/vendor/jsl-0.3.0/src/jsnum.c +1148 -0
- data/vendor/jsl-0.3.0/src/jsnum.h +257 -0
- data/vendor/jsl-0.3.0/src/jsobj.c +4066 -0
- data/vendor/jsl-0.3.0/src/jsobj.h +475 -0
- data/vendor/jsl-0.3.0/src/jsopcode.c +2730 -0
- data/vendor/jsl-0.3.0/src/jsopcode.h +275 -0
- data/vendor/jsl-0.3.0/src/jsopcode.tbl +344 -0
- data/vendor/jsl-0.3.0/src/jsosdep.h +127 -0
- data/vendor/jsl-0.3.0/src/jsotypes.h +211 -0
- data/vendor/jsl-0.3.0/src/jsparse.c +4438 -0
- data/vendor/jsl-0.3.0/src/jsparse.h +345 -0
- data/vendor/jsl-0.3.0/src/jsprf.c +1212 -0
- data/vendor/jsl-0.3.0/src/jsprf.h +148 -0
- data/vendor/jsl-0.3.0/src/jsprvtd.h +174 -0
- data/vendor/jsl-0.3.0/src/jspubtd.h +586 -0
- data/vendor/jsl-0.3.0/src/jsregexp.c +3831 -0
- data/vendor/jsl-0.3.0/src/jsregexp.h +180 -0
- data/vendor/jsl-0.3.0/src/jsscan.c +1814 -0
- data/vendor/jsl-0.3.0/src/jsscan.h +267 -0
- data/vendor/jsl-0.3.0/src/jsscope.c +1639 -0
- data/vendor/jsl-0.3.0/src/jsscope.h +389 -0
- data/vendor/jsl-0.3.0/src/jsscript.c +1284 -0
- data/vendor/jsl-0.3.0/src/jsscript.h +179 -0
- data/vendor/jsl-0.3.0/src/jsshell.msg +50 -0
- data/vendor/jsl-0.3.0/src/jsstddef.h +83 -0
- data/vendor/jsl-0.3.0/src/jsstr.c +4502 -0
- data/vendor/jsl-0.3.0/src/jsstr.h +448 -0
- data/vendor/jsl-0.3.0/src/jstypes.h +391 -0
- data/vendor/jsl-0.3.0/src/jsutil.c +157 -0
- data/vendor/jsl-0.3.0/src/jsutil.h +75 -0
- data/vendor/jsl-0.3.0/src/jsxdrapi.c +686 -0
- data/vendor/jsl-0.3.0/src/jsxdrapi.h +193 -0
- data/vendor/jsl-0.3.0/src/liveconnect/LiveConnect.dsp +157 -0
- data/vendor/jsl-0.3.0/src/liveconnect/LiveConnectShell.dsp +120 -0
- data/vendor/jsl-0.3.0/src/liveconnect/LiveConnectShell.dsw +44 -0
- data/vendor/jsl-0.3.0/src/liveconnect/Makefile.in +106 -0
- data/vendor/jsl-0.3.0/src/liveconnect/Makefile.ref +169 -0
- data/vendor/jsl-0.3.0/src/liveconnect/README.html +719 -0
- data/vendor/jsl-0.3.0/src/liveconnect/_jni/netscape_javascript_JSException.h +14 -0
- data/vendor/jsl-0.3.0/src/liveconnect/_jni/netscape_javascript_JSObject.h +155 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/Makefile.in +89 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/Makefile.ref +57 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/netscape/Makefile.ref +47 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/netscape/javascript/JSException.java +140 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/netscape/javascript/JSObject.java +183 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/netscape/javascript/JSProxy.java +58 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/netscape/javascript/JSRunnable.java +70 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/netscape/javascript/JSUtil.java +59 -0
- data/vendor/jsl-0.3.0/src/liveconnect/classes/netscape/javascript/Makefile.ref +53 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/AIX4.1.mk +45 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/AIX4.2.mk +45 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/AIX4.3.mk +50 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/HP-UXB.10.10.mk +43 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/HP-UXB.10.20.mk +43 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/HP-UXB.11.00.mk +43 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/IRIX6.2.mk +43 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/IRIX6.3.mk +43 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/IRIX6.5.mk +43 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/Linux_All.mk +73 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/OSF1V4.0.mk +65 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/OSF1V5.0.mk +62 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/SunOS5.5.1.mk +55 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/SunOS5.6.mk +39 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/SunOS5.7.mk +39 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/SunOS5.8.mk +39 -0
- data/vendor/jsl-0.3.0/src/liveconnect/config/WINNT4.0.mk +53 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj.c +884 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj.msg +98 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_JSObject.c +1379 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_JavaArray.c +481 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_JavaClass.c +749 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_JavaMember.c +186 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_JavaObject.c +1099 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_JavaPackage.c +548 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_array.c +207 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_class.c +765 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_convert.c +954 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_field.c +421 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_hash.c +504 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_hash.h +161 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_method.c +1823 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_nodl.c +1 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_private.h +689 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_simpleapi.c +219 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsj_utils.c +513 -0
- data/vendor/jsl-0.3.0/src/liveconnect/jsjava.h +313 -0
- data/vendor/jsl-0.3.0/src/liveconnect/liveconnect.pkg +3 -0
- data/vendor/jsl-0.3.0/src/liveconnect/netscape_javascript_JSObject.h +155 -0
- data/vendor/jsl-0.3.0/src/liveconnect/nsCLiveconnect.cpp +785 -0
- data/vendor/jsl-0.3.0/src/liveconnect/nsCLiveconnect.h +197 -0
- data/vendor/jsl-0.3.0/src/liveconnect/nsCLiveconnectFactory.cpp +163 -0
- data/vendor/jsl-0.3.0/src/liveconnect/nsCLiveconnectFactory.h +76 -0
- data/vendor/jsl-0.3.0/src/liveconnect/nsILiveconnect.h +195 -0
- data/vendor/jsl-0.3.0/src/liveconnect/nsISecureLiveconnect.h +84 -0
- data/vendor/jsl-0.3.0/src/liveconnect/nsISecurityContext.h +135 -0
- data/vendor/jsl-0.3.0/src/liveconnect/win32.order +6 -0
- data/vendor/jsl-0.3.0/src/lock_SunOS.s +114 -0
- data/vendor/jsl-0.3.0/src/perfect.js +39 -0
- data/vendor/jsl-0.3.0/src/perlconnect/JS.def +6 -0
- data/vendor/jsl-0.3.0/src/perlconnect/JS.dsp +107 -0
- data/vendor/jsl-0.3.0/src/perlconnect/JS.pm +318 -0
- data/vendor/jsl-0.3.0/src/perlconnect/JS.xs +1050 -0
- data/vendor/jsl-0.3.0/src/perlconnect/Makefile.PL +67 -0
- data/vendor/jsl-0.3.0/src/perlconnect/Makefile.ref +152 -0
- data/vendor/jsl-0.3.0/src/perlconnect/PerlConnect.dsp +103 -0
- data/vendor/jsl-0.3.0/src/perlconnect/PerlConnect.dsw +59 -0
- data/vendor/jsl-0.3.0/src/perlconnect/PerlConnect.pm +126 -0
- data/vendor/jsl-0.3.0/src/perlconnect/PerlConnectShell.dsp +89 -0
- data/vendor/jsl-0.3.0/src/perlconnect/README.html +345 -0
- data/vendor/jsl-0.3.0/src/perlconnect/bg.jpg +0 -0
- data/vendor/jsl-0.3.0/src/perlconnect/jsperl.c +1100 -0
- data/vendor/jsl-0.3.0/src/perlconnect/jsperl.h +52 -0
- data/vendor/jsl-0.3.0/src/perlconnect/jsperlbuild.pl +81 -0
- data/vendor/jsl-0.3.0/src/perlconnect/jsperlpvt.h +57 -0
- data/vendor/jsl-0.3.0/src/perlconnect/test.js +73 -0
- data/vendor/jsl-0.3.0/src/perlconnect/test.pl +244 -0
- data/vendor/jsl-0.3.0/src/perlconnect/typemap +121 -0
- data/vendor/jsl-0.3.0/src/plify_jsdhash.sed +31 -0
- data/vendor/jsl-0.3.0/src/prmjtime.c +646 -0
- data/vendor/jsl-0.3.0/src/prmjtime.h +95 -0
- data/vendor/jsl-0.3.0/src/resource.h +15 -0
- data/vendor/jsl-0.3.0/src/rules.mk +193 -0
- data/vendor/jsl-0.3.0/src/win32.order +391 -0
- data/vendor/jsl-0.3.0/tests/conf/always_use_option_explicit.js +4 -0
- data/vendor/jsl-0.3.0/tests/conf/define.js +8 -0
- data/vendor/jsl-0.3.0/tests/conf/jscript_function_extensions-1.js +7 -0
- data/vendor/jsl-0.3.0/tests/conf/jscript_function_extensions-2.js +8 -0
- data/vendor/jsl-0.3.0/tests/conf/jscript_function_extensions-3.js +27 -0
- data/vendor/jsl-0.3.0/tests/conf/jscript_function_extensions-4.js +4 -0
- data/vendor/jsl-0.3.0/tests/conf/lambda_assign_requires_semicolon.js +24 -0
- data/vendor/jsl-0.3.0/tests/conf/legacy_control_comments.js +8 -0
- data/vendor/jsl-0.3.0/tests/control_comments/control_comments.js +33 -0
- data/vendor/jsl-0.3.0/tests/control_comments/declare.js +26 -0
- data/vendor/jsl-0.3.0/tests/control_comments/import-overflow.js +9 -0
- data/vendor/jsl-0.3.0/tests/control_comments/import.js +5 -0
- data/vendor/jsl-0.3.0/tests/control_comments/import2.js +2 -0
- data/vendor/jsl-0.3.0/tests/control_comments/invalid_fallthru.js +13 -0
- data/vendor/jsl-0.3.0/tests/control_comments/option_explicit-with.js +12 -0
- data/vendor/jsl-0.3.0/tests/control_comments/option_explicit.js +64 -0
- data/vendor/jsl-0.3.0/tests/errors/unterminated_comment.js +8 -0
- data/vendor/jsl-0.3.0/tests/html/script_tag_in_js_literal.html +14 -0
- data/vendor/jsl-0.3.0/tests/run_tests.pl +71 -0
- data/vendor/jsl-0.3.0/tests/warnings/ambiguous_else_stmt.js +21 -0
- data/vendor/jsl-0.3.0/tests/warnings/ambiguous_nested_stmt.js +66 -0
- data/vendor/jsl-0.3.0/tests/warnings/ambiguous_newline.js +261 -0
- data/vendor/jsl-0.3.0/tests/warnings/anon_no_return_value.js +26 -0
- data/vendor/jsl-0.3.0/tests/warnings/assign_to_function_call.js +16 -0
- data/vendor/jsl-0.3.0/tests/warnings/block_without_braces.js +13 -0
- data/vendor/jsl-0.3.0/tests/warnings/comma_separated_stmts.js +17 -0
- data/vendor/jsl-0.3.0/tests/warnings/comparison_type_conv.js +44 -0
- data/vendor/jsl-0.3.0/tests/warnings/default_not_at_end.js +15 -0
- data/vendor/jsl-0.3.0/tests/warnings/dup_option_explicit.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/duplicate_case_in_switch.js +62 -0
- data/vendor/jsl-0.3.0/tests/warnings/duplicate_formal.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/empty_statement.js +29 -0
- data/vendor/jsl-0.3.0/tests/warnings/equal_as_assign.js +7 -0
- data/vendor/jsl-0.3.0/tests/warnings/inc_dec_within_stmt-ignore.js +21 -0
- data/vendor/jsl-0.3.0/tests/warnings/inc_dec_within_stmt.js +63 -0
- data/vendor/jsl-0.3.0/tests/warnings/jsl_cc_not_understood.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/leading_decimal_point.js +7 -0
- data/vendor/jsl-0.3.0/tests/warnings/legacy_cc_not_understood.js +9 -0
- data/vendor/jsl-0.3.0/tests/warnings/meaningless_block.js +12 -0
- data/vendor/jsl-0.3.0/tests/warnings/misplaced_regex.js +20 -0
- data/vendor/jsl-0.3.0/tests/warnings/missing_break.js +87 -0
- data/vendor/jsl-0.3.0/tests/warnings/missing_break_for_last_case.js +19 -0
- data/vendor/jsl-0.3.0/tests/warnings/missing_default_case.js +51 -0
- data/vendor/jsl-0.3.0/tests/warnings/missing_option_explicit.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/missing_semicolon.js +19 -0
- data/vendor/jsl-0.3.0/tests/warnings/multiple_plus_minus.js +10 -0
- data/vendor/jsl-0.3.0/tests/warnings/nested_comment.js +6 -0
- data/vendor/jsl-0.3.0/tests/warnings/no_return_value.js +25 -0
- data/vendor/jsl-0.3.0/tests/warnings/octal_number.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/parseint_missing_radix.js +15 -0
- data/vendor/jsl-0.3.0/tests/warnings/partial_option_explicit.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/redeclared_var.js +10 -0
- data/vendor/jsl-0.3.0/tests/warnings/spidermonkey/bad_backref.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/spidermonkey/deprecated_usage.js +11 -0
- data/vendor/jsl-0.3.0/tests/warnings/spidermonkey/invalid_backref.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/spidermonkey/trailing_comma.js +5 -0
- data/vendor/jsl-0.3.0/tests/warnings/trailing_comma_in_array.js +8 -0
- data/vendor/jsl-0.3.0/tests/warnings/trailing_decimal_point.js +7 -0
- data/vendor/jsl-0.3.0/tests/warnings/unreachable_code.js +29 -0
- data/vendor/jsl-0.3.0/tests/warnings/use_of_label.js +19 -0
- data/vendor/jsl-0.3.0/tests/warnings/useless_assign.js +20 -0
- data/vendor/jsl-0.3.0/tests/warnings/useless_comparison.js +55 -0
- data/vendor/jsl-0.3.0/tests/warnings/useless_void.js +6 -0
- data/vendor/jsl-0.3.0/tests/warnings/var_hides_arg.js +4 -0
- data/vendor/jsl-0.3.0/tests/warnings/with_statement.js +7 -0
- data/vendor/yuicompressor-2.4.2.jar +0 -0
- metadata +605 -0
|
@@ -0,0 +1,608 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
2
|
+
*
|
|
3
|
+
* ***** BEGIN LICENSE BLOCK *****
|
|
4
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
5
|
+
*
|
|
6
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
7
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
8
|
+
* the License. You may obtain a copy of the License at
|
|
9
|
+
* http://www.mozilla.org/MPL/
|
|
10
|
+
*
|
|
11
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
13
|
+
* for the specific language governing rights and limitations under the
|
|
14
|
+
* License.
|
|
15
|
+
*
|
|
16
|
+
* The Original Code is Mozilla Communicator client code, released
|
|
17
|
+
* March 31, 1998.
|
|
18
|
+
*
|
|
19
|
+
* The Initial Developer of the Original Code is
|
|
20
|
+
* Netscape Communications Corporation.
|
|
21
|
+
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
22
|
+
* the Initial Developer. All Rights Reserved.
|
|
23
|
+
*
|
|
24
|
+
* Contributor(s):
|
|
25
|
+
*
|
|
26
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
27
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
28
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
29
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
30
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
31
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
32
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
33
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
34
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
35
|
+
* the provisions above, a recipient may use your version of this file under
|
|
36
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
37
|
+
*
|
|
38
|
+
* ***** END LICENSE BLOCK ***** */
|
|
39
|
+
|
|
40
|
+
#ifndef jscntxt_h___
|
|
41
|
+
#define jscntxt_h___
|
|
42
|
+
/*
|
|
43
|
+
* JS execution context.
|
|
44
|
+
*/
|
|
45
|
+
#include "jsarena.h" /* Added by JSIFY */
|
|
46
|
+
#include "jsclist.h"
|
|
47
|
+
#include "jslong.h"
|
|
48
|
+
#include "jsatom.h"
|
|
49
|
+
#include "jsconfig.h"
|
|
50
|
+
#include "jsdhash.h"
|
|
51
|
+
#include "jsgc.h"
|
|
52
|
+
#include "jsinterp.h"
|
|
53
|
+
#include "jsobj.h"
|
|
54
|
+
#include "jsprvtd.h"
|
|
55
|
+
#include "jspubtd.h"
|
|
56
|
+
#include "jsregexp.h"
|
|
57
|
+
|
|
58
|
+
JS_BEGIN_EXTERN_C
|
|
59
|
+
|
|
60
|
+
typedef enum JSGCMode { JS_NO_GC, JS_MAYBE_GC, JS_FORCE_GC } JSGCMode;
|
|
61
|
+
|
|
62
|
+
typedef enum JSRuntimeState {
|
|
63
|
+
JSRTS_DOWN,
|
|
64
|
+
JSRTS_LAUNCHING,
|
|
65
|
+
JSRTS_UP,
|
|
66
|
+
JSRTS_LANDING
|
|
67
|
+
} JSRuntimeState;
|
|
68
|
+
|
|
69
|
+
typedef struct JSPropertyTreeEntry {
|
|
70
|
+
JSDHashEntryHdr hdr;
|
|
71
|
+
JSScopeProperty *child;
|
|
72
|
+
} JSPropertyTreeEntry;
|
|
73
|
+
|
|
74
|
+
struct JSRuntime {
|
|
75
|
+
/* Runtime state, synchronized by the stateChange/gcLock condvar/lock. */
|
|
76
|
+
JSRuntimeState state;
|
|
77
|
+
|
|
78
|
+
/* Garbage collector state, used by jsgc.c. */
|
|
79
|
+
JSArenaPool gcArenaPool;
|
|
80
|
+
JSDHashTable gcRootsHash;
|
|
81
|
+
JSDHashTable *gcLocksHash;
|
|
82
|
+
JSGCThing *gcFreeList;
|
|
83
|
+
jsrefcount gcKeepAtoms;
|
|
84
|
+
uint32 gcBytes;
|
|
85
|
+
uint32 gcLastBytes;
|
|
86
|
+
uint32 gcMaxBytes;
|
|
87
|
+
uint32 gcLevel;
|
|
88
|
+
uint32 gcNumber;
|
|
89
|
+
JSPackedBool gcPoke;
|
|
90
|
+
JSPackedBool gcRunning;
|
|
91
|
+
JSGCCallback gcCallback;
|
|
92
|
+
uint32 gcMallocBytes;
|
|
93
|
+
#ifdef JS_GCMETER
|
|
94
|
+
JSGCStats gcStats;
|
|
95
|
+
#endif
|
|
96
|
+
|
|
97
|
+
/* Literal table maintained by jsatom.c functions. */
|
|
98
|
+
JSAtomState atomState;
|
|
99
|
+
|
|
100
|
+
/* Random number generator state, used by jsmath.c. */
|
|
101
|
+
JSBool rngInitialized;
|
|
102
|
+
int64 rngMultiplier;
|
|
103
|
+
int64 rngAddend;
|
|
104
|
+
int64 rngMask;
|
|
105
|
+
int64 rngSeed;
|
|
106
|
+
jsdouble rngDscale;
|
|
107
|
+
|
|
108
|
+
/* Well-known numbers held for use by this runtime's contexts. */
|
|
109
|
+
jsdouble *jsNaN;
|
|
110
|
+
jsdouble *jsNegativeInfinity;
|
|
111
|
+
jsdouble *jsPositiveInfinity;
|
|
112
|
+
|
|
113
|
+
/* Empty string held for use by this runtime's contexts. */
|
|
114
|
+
JSString *emptyString;
|
|
115
|
+
|
|
116
|
+
/* List of active contexts sharing this runtime; protected by gcLock. */
|
|
117
|
+
JSCList contextList;
|
|
118
|
+
|
|
119
|
+
/* These are used for debugging -- see jsprvtd.h and jsdbgapi.h. */
|
|
120
|
+
JSTrapHandler interruptHandler;
|
|
121
|
+
void *interruptHandlerData;
|
|
122
|
+
JSNewScriptHook newScriptHook;
|
|
123
|
+
void *newScriptHookData;
|
|
124
|
+
JSDestroyScriptHook destroyScriptHook;
|
|
125
|
+
void *destroyScriptHookData;
|
|
126
|
+
JSTrapHandler debuggerHandler;
|
|
127
|
+
void *debuggerHandlerData;
|
|
128
|
+
JSSourceHandler sourceHandler;
|
|
129
|
+
void *sourceHandlerData;
|
|
130
|
+
JSInterpreterHook executeHook;
|
|
131
|
+
void *executeHookData;
|
|
132
|
+
JSInterpreterHook callHook;
|
|
133
|
+
void *callHookData;
|
|
134
|
+
JSObjectHook objectHook;
|
|
135
|
+
void *objectHookData;
|
|
136
|
+
JSTrapHandler throwHook;
|
|
137
|
+
void *throwHookData;
|
|
138
|
+
JSDebugErrorHook debugErrorHook;
|
|
139
|
+
void *debugErrorHookData;
|
|
140
|
+
|
|
141
|
+
/* More debugging state, see jsdbgapi.c. */
|
|
142
|
+
JSCList trapList;
|
|
143
|
+
JSCList watchPointList;
|
|
144
|
+
|
|
145
|
+
/* Weak links to properties, indexed by quickened get/set opcodes. */
|
|
146
|
+
/* XXX must come after JSCLists or MSVC alignment bug bites empty lists */
|
|
147
|
+
JSPropertyCache propertyCache;
|
|
148
|
+
|
|
149
|
+
/* Client opaque pointer */
|
|
150
|
+
void *data;
|
|
151
|
+
|
|
152
|
+
#ifdef JS_THREADSAFE
|
|
153
|
+
/* These combine to interlock the GC and new requests. */
|
|
154
|
+
PRLock *gcLock;
|
|
155
|
+
PRCondVar *gcDone;
|
|
156
|
+
PRCondVar *requestDone;
|
|
157
|
+
uint32 requestCount;
|
|
158
|
+
jsword gcThread;
|
|
159
|
+
|
|
160
|
+
/* Lock and owning thread pointer for JS_LOCK_RUNTIME. */
|
|
161
|
+
PRLock *rtLock;
|
|
162
|
+
#ifdef DEBUG
|
|
163
|
+
jsword rtLockOwner;
|
|
164
|
+
#endif
|
|
165
|
+
|
|
166
|
+
/* Used to synchronize down/up state change; protected by gcLock. */
|
|
167
|
+
PRCondVar *stateChange;
|
|
168
|
+
|
|
169
|
+
/* Used to serialize cycle checks when setting __proto__ or __parent__. */
|
|
170
|
+
PRLock *setSlotLock;
|
|
171
|
+
PRCondVar *setSlotDone;
|
|
172
|
+
JSBool setSlotBusy;
|
|
173
|
+
JSScope *setSlotScope; /* deadlock avoidance, see jslock.c */
|
|
174
|
+
|
|
175
|
+
/*
|
|
176
|
+
* State for sharing single-threaded scopes, once a second thread tries to
|
|
177
|
+
* lock a scope. The scopeSharingDone condvar is protected by rt->gcLock,
|
|
178
|
+
* to minimize number of locks taken in JS_EndRequest.
|
|
179
|
+
*
|
|
180
|
+
* The scopeSharingTodo linked list is likewise "global" per runtime, not
|
|
181
|
+
* one-list-per-context, to conserve space over all contexts, optimizing
|
|
182
|
+
* for the likely case that scopes become shared rarely, and among a very
|
|
183
|
+
* small set of threads (contexts).
|
|
184
|
+
*/
|
|
185
|
+
PRCondVar *scopeSharingDone;
|
|
186
|
+
JSScope *scopeSharingTodo;
|
|
187
|
+
|
|
188
|
+
/*
|
|
189
|
+
* Magic terminator for the rt->scopeSharingTodo linked list, threaded through
|
|
190
|
+
* scope->u.link. This hack allows us to test whether a scope is on the list
|
|
191
|
+
* by asking whether scope->u.link is non-null. We use a large, likely bogus
|
|
192
|
+
* pointer here to distinguish this value from any valid u.count (small int)
|
|
193
|
+
* value.
|
|
194
|
+
*/
|
|
195
|
+
#define NO_SCOPE_SHARING_TODO ((JSScope *) 0xfeedbeef)
|
|
196
|
+
#endif /* JS_THREADSAFE */
|
|
197
|
+
|
|
198
|
+
/*
|
|
199
|
+
* Check property accessibility for objects of arbitrary class. Used at
|
|
200
|
+
* present to check f.caller accessibility for any function object f.
|
|
201
|
+
*/
|
|
202
|
+
JSCheckAccessOp checkObjectAccess;
|
|
203
|
+
|
|
204
|
+
/* Security principals serialization support. */
|
|
205
|
+
JSPrincipalsTranscoder principalsTranscoder;
|
|
206
|
+
|
|
207
|
+
/* Shared scope property tree, and allocator for its nodes. */
|
|
208
|
+
JSDHashTable propertyTreeHash;
|
|
209
|
+
JSScopeProperty *propertyFreeList;
|
|
210
|
+
JSArenaPool propertyArenaPool;
|
|
211
|
+
|
|
212
|
+
/* Script filename table. */
|
|
213
|
+
struct JSHashTable *scriptFilenameTable;
|
|
214
|
+
#ifdef JS_THREADSAFE
|
|
215
|
+
PRLock *scriptFilenameTableLock;
|
|
216
|
+
#endif
|
|
217
|
+
|
|
218
|
+
/* Number localization, used by jsnum.c */
|
|
219
|
+
const char *thousandsSeparator;
|
|
220
|
+
const char *decimalSeparator;
|
|
221
|
+
const char *numGrouping;
|
|
222
|
+
|
|
223
|
+
#ifdef DEBUG
|
|
224
|
+
/* Function invocation metering. */
|
|
225
|
+
jsrefcount inlineCalls;
|
|
226
|
+
jsrefcount nativeCalls;
|
|
227
|
+
jsrefcount nonInlineCalls;
|
|
228
|
+
jsrefcount constructs;
|
|
229
|
+
|
|
230
|
+
/* Scope lock and property metering. */
|
|
231
|
+
jsrefcount claimAttempts;
|
|
232
|
+
jsrefcount claimedScopes;
|
|
233
|
+
jsrefcount deadContexts;
|
|
234
|
+
jsrefcount deadlocksAvoided;
|
|
235
|
+
jsrefcount liveScopes;
|
|
236
|
+
jsrefcount sharedScopes;
|
|
237
|
+
jsrefcount totalScopes;
|
|
238
|
+
jsrefcount badUndependStrings;
|
|
239
|
+
jsrefcount liveScopeProps;
|
|
240
|
+
jsrefcount totalScopeProps;
|
|
241
|
+
jsrefcount livePropTreeNodes;
|
|
242
|
+
jsrefcount duplicatePropTreeNodes;
|
|
243
|
+
jsrefcount totalPropTreeNodes;
|
|
244
|
+
jsrefcount propTreeKidsChunks;
|
|
245
|
+
jsrefcount middleDeleteFixups;
|
|
246
|
+
|
|
247
|
+
/* String instrumentation. */
|
|
248
|
+
jsrefcount liveStrings;
|
|
249
|
+
jsrefcount totalStrings;
|
|
250
|
+
jsrefcount liveDependentStrings;
|
|
251
|
+
jsrefcount totalDependentStrings;
|
|
252
|
+
double lengthSum;
|
|
253
|
+
double lengthSquaredSum;
|
|
254
|
+
double strdepLengthSum;
|
|
255
|
+
double strdepLengthSquaredSum;
|
|
256
|
+
#endif
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
#ifdef DEBUG
|
|
260
|
+
# define JS_RUNTIME_METER(rt, which) JS_ATOMIC_INCREMENT(&(rt)->which)
|
|
261
|
+
# define JS_RUNTIME_UNMETER(rt, which) JS_ATOMIC_DECREMENT(&(rt)->which)
|
|
262
|
+
#else
|
|
263
|
+
# define JS_RUNTIME_METER(rt, which) /* nothing */
|
|
264
|
+
# define JS_RUNTIME_UNMETER(rt, which) /* nothing */
|
|
265
|
+
#endif
|
|
266
|
+
|
|
267
|
+
#define JS_KEEP_ATOMS(rt) JS_ATOMIC_INCREMENT(&(rt)->gcKeepAtoms);
|
|
268
|
+
#define JS_UNKEEP_ATOMS(rt) JS_ATOMIC_DECREMENT(&(rt)->gcKeepAtoms);
|
|
269
|
+
|
|
270
|
+
#ifdef JS_ARGUMENT_FORMATTER_DEFINED
|
|
271
|
+
/*
|
|
272
|
+
* Linked list mapping format strings for JS_{Convert,Push}Arguments{,VA} to
|
|
273
|
+
* formatter functions. Elements are sorted in non-increasing format string
|
|
274
|
+
* length order.
|
|
275
|
+
*/
|
|
276
|
+
struct JSArgumentFormatMap {
|
|
277
|
+
const char *format;
|
|
278
|
+
size_t length;
|
|
279
|
+
JSArgumentFormatter formatter;
|
|
280
|
+
JSArgumentFormatMap *next;
|
|
281
|
+
};
|
|
282
|
+
#endif
|
|
283
|
+
|
|
284
|
+
struct JSStackHeader {
|
|
285
|
+
uintN nslots;
|
|
286
|
+
JSStackHeader *down;
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
#define JS_STACK_SEGMENT(sh) ((jsval *)(sh) + 2)
|
|
290
|
+
|
|
291
|
+
/*
|
|
292
|
+
* Key and entry types for the JSContext.resolvingTable hash table, typedef'd
|
|
293
|
+
* here because all consumers need to see these declarations (and not just the
|
|
294
|
+
* typedef names, as would be the case for an opaque pointer-to-typedef'd-type
|
|
295
|
+
* declaration), along with cx->resolvingTable.
|
|
296
|
+
*/
|
|
297
|
+
typedef struct JSResolvingKey {
|
|
298
|
+
JSObject *obj;
|
|
299
|
+
jsid id;
|
|
300
|
+
} JSResolvingKey;
|
|
301
|
+
|
|
302
|
+
typedef struct JSResolvingEntry {
|
|
303
|
+
JSDHashEntryHdr hdr;
|
|
304
|
+
JSResolvingKey key;
|
|
305
|
+
uint32 flags;
|
|
306
|
+
} JSResolvingEntry;
|
|
307
|
+
|
|
308
|
+
#define JSRESFLAG_LOOKUP 0x1 /* resolving id from lookup */
|
|
309
|
+
#define JSRESFLAG_WATCH 0x2 /* resolving id from watch */
|
|
310
|
+
|
|
311
|
+
typedef struct JSLocalRootChunk JSLocalRootChunk;
|
|
312
|
+
|
|
313
|
+
#define JSLRS_CHUNK_SHIFT 6
|
|
314
|
+
#define JSLRS_CHUNK_SIZE JS_BIT(JSLRS_CHUNK_SHIFT)
|
|
315
|
+
#define JSLRS_CHUNK_MASK JS_BITMASK(JSLRS_CHUNK_SHIFT)
|
|
316
|
+
|
|
317
|
+
struct JSLocalRootChunk {
|
|
318
|
+
jsval roots[JSLRS_CHUNK_SIZE];
|
|
319
|
+
JSLocalRootChunk *down;
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
typedef struct JSLocalRootStack {
|
|
323
|
+
uint16 scopeMark;
|
|
324
|
+
uint16 rootCount;
|
|
325
|
+
JSLocalRootChunk *topChunk;
|
|
326
|
+
JSLocalRootChunk firstChunk;
|
|
327
|
+
} JSLocalRootStack;
|
|
328
|
+
|
|
329
|
+
#define JSLRS_NULL_MARK ((uint16) -1)
|
|
330
|
+
|
|
331
|
+
struct JSLObjectList {
|
|
332
|
+
JSCList links;
|
|
333
|
+
JSObject *obj;
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
typedef struct JSLImportPathList {
|
|
337
|
+
JSCList links;
|
|
338
|
+
char *importPath;
|
|
339
|
+
} JSLImportPathList;
|
|
340
|
+
|
|
341
|
+
typedef struct JSLint {
|
|
342
|
+
JSObject *scriptIdentifiers; /* contains identifiers declared in this script */
|
|
343
|
+
JSLObjectList *dependencyList; /* contains identifiers declared in dependencies (scripts) */
|
|
344
|
+
|
|
345
|
+
JSLImportCallback importCallback;
|
|
346
|
+
void *importCallbackParms;
|
|
347
|
+
JSLImportPathList *importPaths;
|
|
348
|
+
|
|
349
|
+
JSBool alwaysUseOptionExplicit;
|
|
350
|
+
JSBool lambdaAssignRequiresSemicolon;
|
|
351
|
+
JSBool enableLegacyControlComments;
|
|
352
|
+
JSBool enableJScriptFunctionExtensions;
|
|
353
|
+
|
|
354
|
+
JSBool hasCompletedPartialScript;
|
|
355
|
+
JSBool allowIncDec;
|
|
356
|
+
|
|
357
|
+
/* control comments */
|
|
358
|
+
JSBool controlCommentsIgnoreAll;
|
|
359
|
+
JSBool controlCommentsIgnore;
|
|
360
|
+
JSBool controlCommentsOptionExplicit;
|
|
361
|
+
JSBool controlCommentsAllowFallthru;
|
|
362
|
+
JSBool controlCommentsHadFallthru;
|
|
363
|
+
JSBool controlCommentsAllowPass;
|
|
364
|
+
JSBool controlCommentsFoundPass;
|
|
365
|
+
|
|
366
|
+
struct JSLint *down;
|
|
367
|
+
} JSLint;
|
|
368
|
+
|
|
369
|
+
#define SHOULD_IGNORE_LINT_WARNINGS(cx) (!(cx)->lint || (cx)->lint->controlCommentsIgnoreAll || \
|
|
370
|
+
(cx)->lint->controlCommentsIgnore)
|
|
371
|
+
|
|
372
|
+
struct JSContext {
|
|
373
|
+
JSCList links;
|
|
374
|
+
|
|
375
|
+
/* Interpreter activation count. */
|
|
376
|
+
uintN interpLevel;
|
|
377
|
+
|
|
378
|
+
/* Limit pointer for checking stack consumption during recursion. */
|
|
379
|
+
jsuword stackLimit;
|
|
380
|
+
|
|
381
|
+
/* Runtime version control identifier and equality operators. */
|
|
382
|
+
JSVersion version;
|
|
383
|
+
jsbytecode jsop_eq;
|
|
384
|
+
jsbytecode jsop_ne;
|
|
385
|
+
|
|
386
|
+
/* Data shared by threads in an address space. */
|
|
387
|
+
JSRuntime *runtime;
|
|
388
|
+
|
|
389
|
+
/* Stack arena pool and frame pointer register. */
|
|
390
|
+
JSArenaPool stackPool;
|
|
391
|
+
JSStackFrame *fp;
|
|
392
|
+
|
|
393
|
+
/* Temporary arena pool used while compiling and decompiling. */
|
|
394
|
+
JSArenaPool tempPool;
|
|
395
|
+
|
|
396
|
+
/* Top-level object and pointer to top stack frame's scope chain. */
|
|
397
|
+
JSObject *globalObject;
|
|
398
|
+
|
|
399
|
+
/* Most recently created things by type, members of the GC's root set. */
|
|
400
|
+
JSGCThing *newborn[GCX_NTYPES];
|
|
401
|
+
|
|
402
|
+
/* Atom root for the last-looked-up atom on this context. */
|
|
403
|
+
JSAtom *lastAtom;
|
|
404
|
+
|
|
405
|
+
/* Regular expression class statics (XXX not shared globally). */
|
|
406
|
+
JSRegExpStatics regExpStatics;
|
|
407
|
+
|
|
408
|
+
/* State for object and array toSource conversion. */
|
|
409
|
+
JSSharpObjectMap sharpObjectMap;
|
|
410
|
+
|
|
411
|
+
/* Argument formatter support for JS_{Convert,Push}Arguments{,VA}. */
|
|
412
|
+
JSArgumentFormatMap *argumentFormatMap;
|
|
413
|
+
|
|
414
|
+
/* Last message string and trace file for debugging. */
|
|
415
|
+
char *lastMessage;
|
|
416
|
+
#ifdef DEBUG
|
|
417
|
+
void *tracefp;
|
|
418
|
+
#endif
|
|
419
|
+
|
|
420
|
+
/* Per-context optional user callbacks. */
|
|
421
|
+
JSBranchCallback branchCallback;
|
|
422
|
+
JSErrorReporter errorReporter;
|
|
423
|
+
|
|
424
|
+
/* Client opaque pointer */
|
|
425
|
+
void *data;
|
|
426
|
+
|
|
427
|
+
/* GC and thread-safe state. */
|
|
428
|
+
JSStackFrame *dormantFrameChain; /* dormant stack frame to scan */
|
|
429
|
+
#ifdef JS_THREADSAFE
|
|
430
|
+
jsword thread;
|
|
431
|
+
jsrefcount requestDepth;
|
|
432
|
+
JSScope *scopeToShare; /* weak reference, see jslock.c */
|
|
433
|
+
JSScope *lockedSealedScope; /* weak ref, for low-cost sealed
|
|
434
|
+
scope locking */
|
|
435
|
+
#endif
|
|
436
|
+
|
|
437
|
+
#if JS_HAS_LVALUE_RETURN
|
|
438
|
+
/*
|
|
439
|
+
* Secondary return value from native method called on the left-hand side
|
|
440
|
+
* of an assignment operator. The native should store the object in which
|
|
441
|
+
* to set a property in *rval, and return the property's id expressed as a
|
|
442
|
+
* jsval by calling JS_SetCallReturnValue2(cx, idval).
|
|
443
|
+
*/
|
|
444
|
+
jsval rval2;
|
|
445
|
+
JSPackedBool rval2set;
|
|
446
|
+
#endif
|
|
447
|
+
|
|
448
|
+
/*
|
|
449
|
+
* True if creating an exception object, to prevent runaway recursion.
|
|
450
|
+
* NB: creatingException packs with rval2set, #if JS_HAS_LVALUE_RETURN,
|
|
451
|
+
* and with throwing, below.
|
|
452
|
+
*/
|
|
453
|
+
JSPackedBool creatingException;
|
|
454
|
+
|
|
455
|
+
/*
|
|
456
|
+
* Exception state -- the exception member is a GC root by definition.
|
|
457
|
+
* NB: throwing packs with creatingException and rval2set, above.
|
|
458
|
+
*/
|
|
459
|
+
JSPackedBool throwing; /* is there a pending exception? */
|
|
460
|
+
jsval exception; /* most-recently-thrown exception */
|
|
461
|
+
|
|
462
|
+
/* Per-context options. */
|
|
463
|
+
uint32 options; /* see jsapi.h for JSOPTION_* */
|
|
464
|
+
|
|
465
|
+
/* Locale specific callbacks for string conversion. */
|
|
466
|
+
JSLocaleCallbacks *localeCallbacks;
|
|
467
|
+
|
|
468
|
+
/*
|
|
469
|
+
* cx->resolvingTable is non-null and non-empty if we are initializing
|
|
470
|
+
* standard classes lazily, or if we are otherwise recursing indirectly
|
|
471
|
+
* from js_LookupProperty through a JSClass.resolve hook. It is used to
|
|
472
|
+
* limit runaway recursion (see jsapi.c and jsobj.c).
|
|
473
|
+
*/
|
|
474
|
+
JSDHashTable *resolvingTable;
|
|
475
|
+
|
|
476
|
+
/* PDL of stack headers describing stack slots not rooted by argv, etc. */
|
|
477
|
+
JSStackHeader *stackHeaders;
|
|
478
|
+
|
|
479
|
+
/* Optional hook to find principals for an object being accessed on cx. */
|
|
480
|
+
JSObjectPrincipalsFinder findObjectPrincipals;
|
|
481
|
+
|
|
482
|
+
/* Optional stack of scoped local GC roots. */
|
|
483
|
+
JSLocalRootStack *localRootStack;
|
|
484
|
+
|
|
485
|
+
/* Information required for lint */
|
|
486
|
+
JSLint *lint;
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
/*
|
|
490
|
+
* Slightly more readable macros, also to hide bitset implementation detail.
|
|
491
|
+
* XXX beware non-boolean truth values, which belie the bitset hiding claim!
|
|
492
|
+
*/
|
|
493
|
+
#define JS_HAS_STRICT_OPTION(cx) ((cx)->options & JSOPTION_STRICT)
|
|
494
|
+
#define JS_HAS_WERROR_OPTION(cx) ((cx)->options & JSOPTION_WERROR)
|
|
495
|
+
#define JS_HAS_COMPILE_N_GO_OPTION(cx) ((cx)->options & JSOPTION_COMPILE_N_GO)
|
|
496
|
+
#define JS_HAS_ATLINE_OPTION(cx) ((cx)->options & JSOPTION_ATLINE)
|
|
497
|
+
|
|
498
|
+
extern JSContext *
|
|
499
|
+
js_NewContext(JSRuntime *rt, size_t stackChunkSize);
|
|
500
|
+
|
|
501
|
+
extern void
|
|
502
|
+
js_DestroyContext(JSContext *cx, JSGCMode gcmode);
|
|
503
|
+
|
|
504
|
+
/*
|
|
505
|
+
* Return true if cx points to a context in rt->contextList, else return false.
|
|
506
|
+
* NB: the caller (see jslock.c:ClaimScope) must hold rt->gcLock.
|
|
507
|
+
*/
|
|
508
|
+
extern JSBool
|
|
509
|
+
js_ValidContextPointer(JSRuntime *rt, JSContext *cx);
|
|
510
|
+
|
|
511
|
+
/*
|
|
512
|
+
* If unlocked, acquire and release rt->gcLock around *iterp update; otherwise
|
|
513
|
+
* the caller must be holding rt->gcLock.
|
|
514
|
+
*/
|
|
515
|
+
extern JSContext *
|
|
516
|
+
js_ContextIterator(JSRuntime *rt, JSBool unlocked, JSContext **iterp);
|
|
517
|
+
|
|
518
|
+
/*
|
|
519
|
+
* JSClass.resolve and watchpoint recursion damping machinery.
|
|
520
|
+
*/
|
|
521
|
+
extern JSBool
|
|
522
|
+
js_StartResolving(JSContext *cx, JSResolvingKey *key, uint32 flag,
|
|
523
|
+
JSResolvingEntry **entryp);
|
|
524
|
+
|
|
525
|
+
extern void
|
|
526
|
+
js_StopResolving(JSContext *cx, JSResolvingKey *key, uint32 flag,
|
|
527
|
+
JSResolvingEntry *entry, uint32 generation);
|
|
528
|
+
|
|
529
|
+
/*
|
|
530
|
+
* Local root set management.
|
|
531
|
+
*/
|
|
532
|
+
extern JSBool
|
|
533
|
+
js_EnterLocalRootScope(JSContext *cx);
|
|
534
|
+
|
|
535
|
+
extern void
|
|
536
|
+
js_LeaveLocalRootScope(JSContext *cx);
|
|
537
|
+
|
|
538
|
+
extern void
|
|
539
|
+
js_ForgetLocalRoot(JSContext *cx, jsval v);
|
|
540
|
+
|
|
541
|
+
extern int
|
|
542
|
+
js_PushLocalRoot(JSContext *cx, JSLocalRootStack *lrs, jsval v);
|
|
543
|
+
|
|
544
|
+
extern void
|
|
545
|
+
js_MarkLocalRoots(JSContext *cx, JSLocalRootStack *lrs);
|
|
546
|
+
|
|
547
|
+
/*
|
|
548
|
+
* Report an exception, which is currently realized as a printf-style format
|
|
549
|
+
* string and its arguments.
|
|
550
|
+
*/
|
|
551
|
+
typedef enum JSErrNum {
|
|
552
|
+
#define MSG_DEF(name, number, count, exception, format) \
|
|
553
|
+
name = number,
|
|
554
|
+
#include "js.msg"
|
|
555
|
+
#undef MSG_DEF
|
|
556
|
+
JSErr_Limit
|
|
557
|
+
} JSErrNum;
|
|
558
|
+
|
|
559
|
+
extern const JSErrorFormatString *
|
|
560
|
+
js_GetErrorMessage(void *userRef, const char *locale, const uintN errorNumber);
|
|
561
|
+
|
|
562
|
+
#ifdef va_start
|
|
563
|
+
extern JSBool
|
|
564
|
+
js_ReportErrorVA(JSContext *cx, uintN flags, const char *format, va_list ap);
|
|
565
|
+
|
|
566
|
+
extern JSBool
|
|
567
|
+
js_ReportErrorNumberVA(JSContext *cx, uintN flags, JSErrorCallback callback,
|
|
568
|
+
void *userRef, const uintN errorNumber,
|
|
569
|
+
JSBool charArgs, va_list ap);
|
|
570
|
+
|
|
571
|
+
extern JSBool
|
|
572
|
+
js_ExpandErrorArguments(JSContext *cx, JSErrorCallback callback,
|
|
573
|
+
void *userRef, const uintN errorNumber,
|
|
574
|
+
char **message, JSErrorReport *reportp,
|
|
575
|
+
JSBool *warningp, JSBool charArgs, va_list ap);
|
|
576
|
+
#endif
|
|
577
|
+
|
|
578
|
+
extern void
|
|
579
|
+
js_ReportOutOfMemory(JSContext *cx, JSErrorCallback errorCallback);
|
|
580
|
+
|
|
581
|
+
/*
|
|
582
|
+
* Report an exception using a previously composed JSErrorReport.
|
|
583
|
+
* XXXbe remove from "friend" API
|
|
584
|
+
*/
|
|
585
|
+
extern JS_FRIEND_API(void)
|
|
586
|
+
js_ReportErrorAgain(JSContext *cx, const char *message, JSErrorReport *report);
|
|
587
|
+
|
|
588
|
+
extern void
|
|
589
|
+
js_ReportIsNotDefined(JSContext *cx, const char *name);
|
|
590
|
+
|
|
591
|
+
extern JSErrorFormatString js_ErrorFormatString[JSErr_Limit];
|
|
592
|
+
|
|
593
|
+
/*
|
|
594
|
+
* See JS_SetThreadStackLimit in jsapi.c, where we check that the stack grows
|
|
595
|
+
* in the expected direction. On Unix-y systems, JS_STACK_GROWTH_DIRECTION is
|
|
596
|
+
* computed on the build host by jscpucfg.c and written into jsautocfg.h. The
|
|
597
|
+
* macro is hardcoded in jscpucfg.h on Windows and Mac systems (for historical
|
|
598
|
+
* reasons pre-dating autoconf usage).
|
|
599
|
+
*/
|
|
600
|
+
#if JS_STACK_GROWTH_DIRECTION > 0
|
|
601
|
+
# define JS_CHECK_STACK_SIZE(cx, lval) ((jsuword)&(lval) < (cx)->stackLimit)
|
|
602
|
+
#else
|
|
603
|
+
# define JS_CHECK_STACK_SIZE(cx, lval) ((jsuword)&(lval) > (cx)->stackLimit)
|
|
604
|
+
#endif
|
|
605
|
+
|
|
606
|
+
JS_END_EXTERN_C
|
|
607
|
+
|
|
608
|
+
#endif /* jscntxt_h___ */
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/* ***** BEGIN LICENSE BLOCK *****
|
|
2
|
+
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
3
|
+
*
|
|
4
|
+
* The contents of this file are subject to the Mozilla Public License Version
|
|
5
|
+
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
6
|
+
* the License. You may obtain a copy of the License at
|
|
7
|
+
* http://www.mozilla.org/MPL/
|
|
8
|
+
*
|
|
9
|
+
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
10
|
+
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
11
|
+
* for the specific language governing rights and limitations under the
|
|
12
|
+
* License.
|
|
13
|
+
*
|
|
14
|
+
* The Original Code is Mozilla Communicator client code, released
|
|
15
|
+
* March 31, 1998.
|
|
16
|
+
*
|
|
17
|
+
* The Initial Developer of the Original Code is
|
|
18
|
+
* Netscape Communications Corporation.
|
|
19
|
+
* Portions created by the Initial Developer are Copyright (C) 1998-1999
|
|
20
|
+
* the Initial Developer. All Rights Reserved.
|
|
21
|
+
*
|
|
22
|
+
* Contributor(s):
|
|
23
|
+
*
|
|
24
|
+
* Alternatively, the contents of this file may be used under the terms of
|
|
25
|
+
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
26
|
+
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
27
|
+
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
28
|
+
* of those above. If you wish to allow use of your version of this file only
|
|
29
|
+
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
30
|
+
* use your version of this file under the terms of the MPL, indicate your
|
|
31
|
+
* decision by deleting the provisions above and replace them with the notice
|
|
32
|
+
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
33
|
+
* the provisions above, a recipient may use your version of this file under
|
|
34
|
+
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
35
|
+
*
|
|
36
|
+
* ***** END LICENSE BLOCK ***** */
|
|
37
|
+
|
|
38
|
+
/* -*- Mode: C; tab-width: 8 -*-
|
|
39
|
+
* Copyright � 1996-1999 Netscape Communications Corporation, All Rights Reserved.
|
|
40
|
+
*/
|
|
41
|
+
#ifndef jscompat_h___
|
|
42
|
+
#define jscompat_h___
|
|
43
|
+
/*
|
|
44
|
+
* Compatibility glue for various NSPR versions. We must always define int8,
|
|
45
|
+
* int16, jsword, and so on to minimize differences with js/ref, no matter what
|
|
46
|
+
* the NSPR typedef names may be.
|
|
47
|
+
*/
|
|
48
|
+
#include "jstypes.h"
|
|
49
|
+
#include "jslong.h"
|
|
50
|
+
|
|
51
|
+
typedef JSIntn intN;
|
|
52
|
+
typedef JSUintn uintN;
|
|
53
|
+
typedef JSUword jsuword;
|
|
54
|
+
typedef JSWord jsword;
|
|
55
|
+
typedef float float32;
|
|
56
|
+
#define allocPriv allocPool
|
|
57
|
+
#endif /* jscompat_h___ */
|