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,548 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
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
|
+
/* This file is part of the Java-vendor-neutral implementation of LiveConnect
|
|
41
|
+
*
|
|
42
|
+
* It contains the native code implementation of the JavaPackage class.
|
|
43
|
+
*
|
|
44
|
+
* A JavaPackage is JavaScript's representation of a Java package. The
|
|
45
|
+
* JavaPackage object contains only a string, which is the path to the package,
|
|
46
|
+
* e.g. "java/lang". The JS properties of a JavaPackage are either nested packages
|
|
47
|
+
* or a JavaClass object, which represents the path to a Java class.
|
|
48
|
+
*
|
|
49
|
+
* Note that there is no equivalent to a JavaPackage object in Java. Example:
|
|
50
|
+
* Although there are instances of java.lang.String and there are static methods
|
|
51
|
+
* of java.lang.String that can be invoked, there's no such thing as a java.lang
|
|
52
|
+
* object in Java that exists at run time.
|
|
53
|
+
*
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
#include <stdlib.h>
|
|
57
|
+
#include <string.h>
|
|
58
|
+
|
|
59
|
+
#include "jsj_private.h" /* LiveConnect internals */
|
|
60
|
+
#include "jsjava.h"
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
JSClass JavaPackage_class; /* Forward declaration */
|
|
64
|
+
|
|
65
|
+
/*
|
|
66
|
+
* The native part of a JavaPackage object. It gets stored in the object's
|
|
67
|
+
* private slot.
|
|
68
|
+
*/
|
|
69
|
+
typedef struct {
|
|
70
|
+
const char * path; /* e.g. "java/lang" or NULL if top level package */
|
|
71
|
+
int flags; /* e.g. PKG_SYSTEM, PKG_CLASS */
|
|
72
|
+
} JavaPackage_Private;
|
|
73
|
+
|
|
74
|
+
static JSObject *
|
|
75
|
+
define_JavaPackage(JSContext *cx, JSObject *parent_obj,
|
|
76
|
+
const char *obj_name, const char *path, int flags, int access)
|
|
77
|
+
{
|
|
78
|
+
JSObject *package_obj;
|
|
79
|
+
JavaPackage_Private *package;
|
|
80
|
+
|
|
81
|
+
package_obj = JS_DefineObject(cx, parent_obj, obj_name, &JavaPackage_class, 0, JSPROP_PERMANENT | access);
|
|
82
|
+
|
|
83
|
+
if (!package_obj)
|
|
84
|
+
return NULL;
|
|
85
|
+
|
|
86
|
+
/* Attach private, native data to the JS object */
|
|
87
|
+
package = (JavaPackage_Private *)JS_malloc(cx, sizeof(JavaPackage_Private));
|
|
88
|
+
JS_SetPrivate(cx, package_obj, (void *)package);
|
|
89
|
+
if (path)
|
|
90
|
+
package->path = JS_strdup(cx, path);
|
|
91
|
+
else
|
|
92
|
+
package->path = "";
|
|
93
|
+
|
|
94
|
+
package->flags = flags;
|
|
95
|
+
|
|
96
|
+
/* Check for OOM */
|
|
97
|
+
if (!package->path) {
|
|
98
|
+
JS_DeleteProperty(cx, parent_obj, obj_name);
|
|
99
|
+
JS_free(cx, package);
|
|
100
|
+
return NULL;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return package_obj;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* JavaPackage uses standard JS getProperty */
|
|
107
|
+
|
|
108
|
+
/*
|
|
109
|
+
* Don't allow user-defined properties to be set on Java package objects, e.g.
|
|
110
|
+
* it is illegal to write "java.lang.myProperty = 4". We probably could relax
|
|
111
|
+
* this restriction, but it's potentially confusing and not clearly useful.
|
|
112
|
+
*/
|
|
113
|
+
JS_STATIC_DLL_CALLBACK(JSBool)
|
|
114
|
+
JavaPackage_setProperty(JSContext *cx, JSObject *obj, jsval slot, jsval *vp)
|
|
115
|
+
{
|
|
116
|
+
JavaPackage_Private *package = JS_GetPrivate(cx, obj);
|
|
117
|
+
if (!package) {
|
|
118
|
+
JS_ReportErrorNumber(cx, jsj_GetErrorMessage, NULL,
|
|
119
|
+
JSJMSG_BAD_ADD_TO_PACKAGE);
|
|
120
|
+
return JS_FALSE;
|
|
121
|
+
}
|
|
122
|
+
JS_ReportErrorNumber(cx, jsj_GetErrorMessage, NULL,
|
|
123
|
+
JSJMSG_DONT_ADD_TO_PACKAGE);
|
|
124
|
+
return JS_FALSE;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
static JSBool quiet_resolve_failure;
|
|
128
|
+
|
|
129
|
+
/*
|
|
130
|
+
* Resolve a component name to be either the name of a class or a package.
|
|
131
|
+
*/
|
|
132
|
+
JS_STATIC_DLL_CALLBACK(JSBool)
|
|
133
|
+
JavaPackage_resolve(JSContext *cx, JSObject *obj, jsval id)
|
|
134
|
+
{
|
|
135
|
+
JavaPackage_Private *package;
|
|
136
|
+
JSBool ok = JS_TRUE;
|
|
137
|
+
jclass jclazz;
|
|
138
|
+
char *subPath, *newPath;
|
|
139
|
+
const char *path;
|
|
140
|
+
JNIEnv *jEnv;
|
|
141
|
+
JSJavaThreadState *jsj_env;
|
|
142
|
+
|
|
143
|
+
/* Painful hack for pre_define_java_packages() */
|
|
144
|
+
if (quiet_resolve_failure)
|
|
145
|
+
return JS_FALSE;
|
|
146
|
+
|
|
147
|
+
package = (JavaPackage_Private *)JS_GetPrivate(cx, obj);
|
|
148
|
+
if (!package)
|
|
149
|
+
return JS_TRUE;
|
|
150
|
+
|
|
151
|
+
if (!JSVAL_IS_STRING(id))
|
|
152
|
+
return JS_TRUE;
|
|
153
|
+
subPath = JS_GetStringBytes(JSVAL_TO_STRING(id));
|
|
154
|
+
|
|
155
|
+
/*
|
|
156
|
+
* There will be an attempt to invoke the toString() method when producing
|
|
157
|
+
* the string representation of a JavaPackage. When this occurs, avoid
|
|
158
|
+
* creating a bogus toString package. (This means that no one can ever
|
|
159
|
+
* create a package with the simple name "toString", but we'll live with
|
|
160
|
+
* that limitation.)
|
|
161
|
+
*/
|
|
162
|
+
if (!strcmp(subPath, "toString"))
|
|
163
|
+
return JS_FALSE;
|
|
164
|
+
|
|
165
|
+
path = package->path;
|
|
166
|
+
newPath = JS_smprintf("%s%s%s", path, (path[0] ? "/" : ""), subPath);
|
|
167
|
+
if (!newPath) {
|
|
168
|
+
JS_ReportOutOfMemory(cx);
|
|
169
|
+
return JS_FALSE;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
jsj_env = jsj_EnterJava(cx, &jEnv);
|
|
173
|
+
if (!jEnv) {
|
|
174
|
+
ok = JS_FALSE;
|
|
175
|
+
goto out;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/*
|
|
179
|
+
Unfortunately, Java provides no way to find out whether a particular
|
|
180
|
+
name is a package or not. The only way to tell is to try to load the
|
|
181
|
+
name as a class file and, if that fails, assume it's a package. This
|
|
182
|
+
makes things work as expected for the most part, but it has three
|
|
183
|
+
noticeable problems that keep coming up:
|
|
184
|
+
|
|
185
|
+
- You can refer to a package like java.lang.i.buried.paul without
|
|
186
|
+
generating a complaint. Of course, you'll never be able to refer to
|
|
187
|
+
any classes through it.
|
|
188
|
+
|
|
189
|
+
- An annoying consequence of the above is that misspelling a class name
|
|
190
|
+
results in a cryptic error about packages.
|
|
191
|
+
|
|
192
|
+
- In a browser context, i.e. where applets are involved, figuring out
|
|
193
|
+
whether something is a class may require looking for it over the net
|
|
194
|
+
using the current classloader. This means that the first time you
|
|
195
|
+
refer to java.lang.System in a js context, there will be an attempt
|
|
196
|
+
to search for [[DOCBASE]]/java.class on the server.
|
|
197
|
+
|
|
198
|
+
A solution is to explicitly tell jsjava the names of all the (local)
|
|
199
|
+
packages on the CLASSPATH. (Not implemented yet.)
|
|
200
|
+
|
|
201
|
+
*/
|
|
202
|
+
jclazz = (*jEnv)->FindClass(jEnv, newPath);
|
|
203
|
+
if (jclazz) {
|
|
204
|
+
JSObject *newClass;
|
|
205
|
+
|
|
206
|
+
newClass = jsj_define_JavaClass(cx, jEnv, obj, subPath, jclazz);
|
|
207
|
+
(*jEnv)->DeleteLocalRef(jEnv, jclazz);
|
|
208
|
+
if (!newClass) {
|
|
209
|
+
ok = JS_FALSE;
|
|
210
|
+
goto out;
|
|
211
|
+
}
|
|
212
|
+
} else {
|
|
213
|
+
|
|
214
|
+
/* We assume that any failed attempt to load a class is because it
|
|
215
|
+
doesn't exist. If we wanted to do a better job, we would check
|
|
216
|
+
the exception type and make sure that it's NoClassDefFoundError */
|
|
217
|
+
(*jEnv)->ExceptionClear(jEnv);
|
|
218
|
+
|
|
219
|
+
/*
|
|
220
|
+
* If there's no class of the given name, then we must be referring to
|
|
221
|
+
* a package. However, don't allow bogus sub-packages of pre-defined
|
|
222
|
+
* system packages to be created.
|
|
223
|
+
*/
|
|
224
|
+
if (JS_InstanceOf(cx, obj, &JavaPackage_class, NULL)) {
|
|
225
|
+
JavaPackage_Private *current_package;
|
|
226
|
+
|
|
227
|
+
current_package = JS_GetPrivate(cx, obj);
|
|
228
|
+
if (current_package->flags & PKG_SYSTEM) {
|
|
229
|
+
char *msg, *cp;
|
|
230
|
+
msg = JS_strdup(cx, newPath);
|
|
231
|
+
|
|
232
|
+
/* Check for OOM */
|
|
233
|
+
if (msg) {
|
|
234
|
+
/* Convert package of form "java/lang" to "java.lang" */
|
|
235
|
+
for (cp = msg; *cp != '\0'; cp++)
|
|
236
|
+
if (*cp == '/')
|
|
237
|
+
*cp = '.';
|
|
238
|
+
JS_ReportErrorNumber(cx, jsj_GetErrorMessage, NULL,
|
|
239
|
+
JSJMSG_MISSING_PACKAGE, msg);
|
|
240
|
+
free((char*)msg);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
ok = JS_FALSE;
|
|
244
|
+
goto out;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
if (!define_JavaPackage(cx, obj, subPath, newPath, 0, JSPROP_READONLY)) {
|
|
249
|
+
ok = JS_FALSE;
|
|
250
|
+
goto out;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
#ifdef DEBUG
|
|
254
|
+
/* printf("JavaPackage \'%s\' created\n", newPath); */
|
|
255
|
+
#endif
|
|
256
|
+
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
out:
|
|
260
|
+
free(newPath);
|
|
261
|
+
jsj_ExitJava(jsj_env);
|
|
262
|
+
return ok;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
JS_STATIC_DLL_CALLBACK(JSBool)
|
|
266
|
+
JavaPackage_convert(JSContext *cx, JSObject *obj, JSType type, jsval *vp)
|
|
267
|
+
{
|
|
268
|
+
JSString *str;
|
|
269
|
+
char *name, *cp;
|
|
270
|
+
|
|
271
|
+
JavaPackage_Private *package = JS_GetPrivate(cx, obj);
|
|
272
|
+
if (!package) {
|
|
273
|
+
fprintf(stderr, "JavaPackage_resolve: no private data!\n");
|
|
274
|
+
return JS_FALSE;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
switch (type) {
|
|
278
|
+
|
|
279
|
+
/* Pretty-printing of JavaPackage */
|
|
280
|
+
case JSTYPE_VOID: /* Default value */
|
|
281
|
+
case JSTYPE_NUMBER:
|
|
282
|
+
case JSTYPE_STRING:
|
|
283
|
+
/* Convert '/' to '.' so that it looks like Java language syntax. */
|
|
284
|
+
if (!package->path)
|
|
285
|
+
break;
|
|
286
|
+
name = JS_smprintf("[JavaPackage %s]", package->path);
|
|
287
|
+
if (!name) {
|
|
288
|
+
JS_ReportOutOfMemory(cx);
|
|
289
|
+
return JS_FALSE;
|
|
290
|
+
}
|
|
291
|
+
for (cp = name; *cp != '\0'; cp++)
|
|
292
|
+
if (*cp == '/')
|
|
293
|
+
*cp = '.';
|
|
294
|
+
str = JS_NewString(cx, name, strlen(name));
|
|
295
|
+
if (!str) {
|
|
296
|
+
free(name);
|
|
297
|
+
/* It's not necessary to call JS_ReportOutOfMemory(), as
|
|
298
|
+
JS_NewString() will do so on failure. */
|
|
299
|
+
return JS_FALSE;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
*vp = STRING_TO_JSVAL(str);
|
|
303
|
+
break;
|
|
304
|
+
|
|
305
|
+
case JSTYPE_OBJECT:
|
|
306
|
+
*vp = OBJECT_TO_JSVAL(obj);
|
|
307
|
+
break;
|
|
308
|
+
|
|
309
|
+
default:
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
return JS_TRUE;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/*
|
|
316
|
+
* Free the private native data associated with the JavaPackage object.
|
|
317
|
+
*/
|
|
318
|
+
JS_STATIC_DLL_CALLBACK(void)
|
|
319
|
+
JavaPackage_finalize(JSContext *cx, JSObject *obj)
|
|
320
|
+
{
|
|
321
|
+
JavaPackage_Private *package = JS_GetPrivate(cx, obj);
|
|
322
|
+
if (!package)
|
|
323
|
+
return;
|
|
324
|
+
|
|
325
|
+
if (package->path)
|
|
326
|
+
JS_free(cx, (char *)package->path);
|
|
327
|
+
JS_free(cx, package);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/*
|
|
331
|
+
* The definition of the JavaPackage class
|
|
332
|
+
*/
|
|
333
|
+
JSClass JavaPackage_class = {
|
|
334
|
+
"JavaPackage", JSCLASS_HAS_PRIVATE,
|
|
335
|
+
JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JavaPackage_setProperty,
|
|
336
|
+
JS_EnumerateStub, JavaPackage_resolve,
|
|
337
|
+
JavaPackage_convert, JavaPackage_finalize,
|
|
338
|
+
|
|
339
|
+
/* Optionally non-null members start here. */
|
|
340
|
+
NULL, /* getObjectOps */
|
|
341
|
+
NULL, /* checkAccess */
|
|
342
|
+
NULL, /* call */
|
|
343
|
+
NULL, /* construct */
|
|
344
|
+
NULL, /* xdrObject */
|
|
345
|
+
NULL, /* hasInstance */
|
|
346
|
+
NULL, /* mark */
|
|
347
|
+
0, /* spare */
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
JavaPackageDef
|
|
351
|
+
standard_java_packages[] = {
|
|
352
|
+
{"java", NULL, PKG_USER, 0},
|
|
353
|
+
{"java.applet", NULL, PKG_USER, JSPROP_READONLY},
|
|
354
|
+
{"java.awt", NULL, PKG_USER, JSPROP_READONLY},
|
|
355
|
+
{"java.awt.datatransfer",
|
|
356
|
+
NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
357
|
+
{"java.awt.event", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
358
|
+
{"java.awt.image", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
359
|
+
{"java.awt.peer", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
360
|
+
{"java.beans", NULL, PKG_USER, JSPROP_READONLY},
|
|
361
|
+
{"java.io", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
362
|
+
{"java.lang", NULL, PKG_USER, JSPROP_READONLY},
|
|
363
|
+
{"java.lang.reflect", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
364
|
+
{"java.math", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
365
|
+
{"java.net", NULL, PKG_USER, JSPROP_READONLY},
|
|
366
|
+
{"java.rmi", NULL, PKG_USER, JSPROP_READONLY},
|
|
367
|
+
{"java.rmi.dgc", NULL, PKG_USER, JSPROP_READONLY},
|
|
368
|
+
{"java.rmi.user", NULL, PKG_USER, JSPROP_READONLY},
|
|
369
|
+
{"java.rmi.registry", NULL, PKG_USER, JSPROP_READONLY},
|
|
370
|
+
{"java.rmi.server", NULL, PKG_USER, JSPROP_READONLY},
|
|
371
|
+
{"java.security", NULL, PKG_USER, JSPROP_READONLY},
|
|
372
|
+
{"java.security.acl", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
373
|
+
{"java.security.interfaces",
|
|
374
|
+
NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
375
|
+
{"java.sql", NULL, PKG_USER, JSPROP_READONLY},
|
|
376
|
+
{"java.text", NULL, PKG_USER, JSPROP_READONLY},
|
|
377
|
+
{"java.text.resources", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
378
|
+
{"java.util", NULL, PKG_USER, JSPROP_READONLY},
|
|
379
|
+
{"java.util.zip", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
380
|
+
|
|
381
|
+
{"netscape", NULL, PKG_USER, 0},
|
|
382
|
+
{"netscape.applet", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
383
|
+
{"netscape.application",NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
384
|
+
{"netscape.debug", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
385
|
+
{"netscape.javascript", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
386
|
+
{"netscape.ldap", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
387
|
+
{"netscape.misc", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
388
|
+
{"netscape.net", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
389
|
+
{"netscape.plugin", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
390
|
+
{"netscape.util", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
391
|
+
{"netscape.secfile", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
392
|
+
{"netscape.security", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
393
|
+
{"netscape.WAI", NULL, PKG_SYSTEM, JSPROP_READONLY},
|
|
394
|
+
|
|
395
|
+
{"sun", NULL, PKG_USER, 0},
|
|
396
|
+
{"Packages", "", PKG_USER, JSPROP_READONLY},
|
|
397
|
+
|
|
398
|
+
{NULL, NULL, 0, 0}
|
|
399
|
+
};
|
|
400
|
+
|
|
401
|
+
/*
|
|
402
|
+
* On systems which provide strtok_r we'll use that function to avoid
|
|
403
|
+
* problems with non-thread-safety.
|
|
404
|
+
*/
|
|
405
|
+
#if HAVE_STRTOK_R
|
|
406
|
+
# define STRTOK_1ST(str, seps, res) strtok_r (str, seps, &res)
|
|
407
|
+
# define STRTOK_OTHER(seps, res) strtok_r (res, seps, &res)
|
|
408
|
+
#else
|
|
409
|
+
# define STRTOK_1ST(str, seps, res) strtok (str, seps)
|
|
410
|
+
# define STRTOK_OTHER(seps, res) strtok (NULL, seps)
|
|
411
|
+
#endif
|
|
412
|
+
|
|
413
|
+
/*
|
|
414
|
+
* Pre-define a hierarchy of JavaPackage objects.
|
|
415
|
+
* Pre-defining a Java package at initialization time is not necessary, but
|
|
416
|
+
* it will make package lookup faster and, more importantly, will avoid
|
|
417
|
+
* unnecessary network accesses if classes are being loaded over the network.
|
|
418
|
+
*/
|
|
419
|
+
static JSBool
|
|
420
|
+
pre_define_java_packages(JSContext *cx, JSObject *global_obj,
|
|
421
|
+
JavaPackageDef *predefined_packages)
|
|
422
|
+
{
|
|
423
|
+
JSBool package_exists;
|
|
424
|
+
JSObject *parent_obj;
|
|
425
|
+
JavaPackageDef *package_def;
|
|
426
|
+
char *simple_name, *cp, *package_name, *path;
|
|
427
|
+
int flags;
|
|
428
|
+
|
|
429
|
+
if (!predefined_packages)
|
|
430
|
+
return JS_TRUE;
|
|
431
|
+
|
|
432
|
+
/* Iterate over all pre-defined Java packages */
|
|
433
|
+
for (package_def = predefined_packages; package_def->name; package_def++) {
|
|
434
|
+
#if HAVE_STRTOK_R
|
|
435
|
+
char *nextstr;
|
|
436
|
+
#endif
|
|
437
|
+
package_name = path = NULL;
|
|
438
|
+
|
|
439
|
+
parent_obj = global_obj;
|
|
440
|
+
package_name = strdup(package_def->name);
|
|
441
|
+
if (!package_name)
|
|
442
|
+
goto out_of_memory;
|
|
443
|
+
|
|
444
|
+
/* Walk the chain of JavaPackage objects to get to the parent of the
|
|
445
|
+
rightmost sub-package in the fully-qualified package name. */
|
|
446
|
+
for (simple_name = STRTOK_1ST(package_name, ".", nextstr); simple_name /*1*/; simple_name = STRTOK_OTHER(".", nextstr)) {
|
|
447
|
+
jsval v;
|
|
448
|
+
|
|
449
|
+
if (!simple_name) {
|
|
450
|
+
JS_ReportErrorNumber(cx, jsj_GetErrorMessage, NULL,
|
|
451
|
+
JSJMSG_DOUBLE_SHIPPING, package_name);
|
|
452
|
+
goto error;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
/* Check to see if the sub-package already exists */
|
|
456
|
+
quiet_resolve_failure = JS_TRUE;
|
|
457
|
+
package_exists = JS_LookupProperty(cx, parent_obj, simple_name, &v) && JSVAL_IS_OBJECT(v);
|
|
458
|
+
quiet_resolve_failure = JS_FALSE;
|
|
459
|
+
|
|
460
|
+
if (package_exists) {
|
|
461
|
+
parent_obj = JSVAL_TO_OBJECT(v);
|
|
462
|
+
continue;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
/* New package objects should only be created at the terminal
|
|
466
|
+
sub-package in a fully-qualified package-name */
|
|
467
|
+
if (STRTOK_OTHER(".", nextstr)) {
|
|
468
|
+
JS_ReportErrorNumber(cx, jsj_GetErrorMessage, NULL,
|
|
469
|
+
JSJMSG_BAD_PACKAGE_PREDEF,
|
|
470
|
+
package_def->name);
|
|
471
|
+
goto error;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
if (package_def->path) {
|
|
475
|
+
path = strdup(package_def->path);
|
|
476
|
+
if (!path)
|
|
477
|
+
goto out_of_memory;
|
|
478
|
+
} else {
|
|
479
|
+
/*
|
|
480
|
+
* The default path is specified, so create it from the
|
|
481
|
+
* fully-qualified package name.
|
|
482
|
+
*/
|
|
483
|
+
path = strdup(package_def->name);
|
|
484
|
+
if (!path)
|
|
485
|
+
goto out_of_memory;
|
|
486
|
+
/* Transform package name, e.g. "java.lang" ==> "java/lang" */
|
|
487
|
+
for (cp = path; *cp != '\0'; cp++) {
|
|
488
|
+
if (*cp == '.')
|
|
489
|
+
*cp = '/';
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
flags = package_def->flags;
|
|
493
|
+
parent_obj = define_JavaPackage(cx, parent_obj, simple_name, path, flags,
|
|
494
|
+
package_def->access);
|
|
495
|
+
if (!parent_obj)
|
|
496
|
+
goto error;
|
|
497
|
+
|
|
498
|
+
free(path);
|
|
499
|
+
break;
|
|
500
|
+
}
|
|
501
|
+
free(package_name);
|
|
502
|
+
}
|
|
503
|
+
return JS_TRUE;
|
|
504
|
+
|
|
505
|
+
out_of_memory:
|
|
506
|
+
JS_ReportOutOfMemory(cx);
|
|
507
|
+
|
|
508
|
+
error:
|
|
509
|
+
JS_FREE_IF(cx, package_name);
|
|
510
|
+
JS_FREE_IF(cx, path);
|
|
511
|
+
return JS_FALSE;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
JS_STATIC_DLL_CALLBACK(JSBool)
|
|
515
|
+
JavaPackage_toString(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
|
|
516
|
+
jsval *rval)
|
|
517
|
+
{
|
|
518
|
+
if (!JS_InstanceOf(cx, obj, &JavaPackage_class, argv))
|
|
519
|
+
return JS_FALSE;
|
|
520
|
+
return JavaPackage_convert(cx, obj, JSTYPE_STRING, rval);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
static JSFunctionSpec JavaPackage_methods[] = {
|
|
524
|
+
{"toString", JavaPackage_toString, 0, 0, 0},
|
|
525
|
+
{0, 0, 0, 0, 0},
|
|
526
|
+
};
|
|
527
|
+
|
|
528
|
+
/*
|
|
529
|
+
* One-time initialization for the JavaPackage class. (This is not
|
|
530
|
+
* run once per thread, rather it's run once for a given JSContext.)
|
|
531
|
+
*/
|
|
532
|
+
JSBool
|
|
533
|
+
jsj_init_JavaPackage(JSContext *cx, JSObject *global_obj,
|
|
534
|
+
JavaPackageDef *additional_predefined_packages) {
|
|
535
|
+
|
|
536
|
+
/* Define JavaPackage class */
|
|
537
|
+
if (!JS_InitClass(cx, global_obj, 0, &JavaPackage_class,
|
|
538
|
+
0, 0, 0, JavaPackage_methods, 0, 0))
|
|
539
|
+
return JS_FALSE;
|
|
540
|
+
|
|
541
|
+
/* Add top-level packages, e.g. : java, netscape, sun */
|
|
542
|
+
if (!pre_define_java_packages(cx, global_obj, standard_java_packages))
|
|
543
|
+
return JS_FALSE;
|
|
544
|
+
if (!pre_define_java_packages(cx, global_obj, additional_predefined_packages))
|
|
545
|
+
return JS_FALSE;
|
|
546
|
+
|
|
547
|
+
return JS_TRUE;
|
|
548
|
+
}
|