# # Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License version 2 only, as # published by the Free Software Foundation. # # This code is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # version 2 for more details (a copy is included in the LICENSE file that # accompanied this code). # # You should have received a copy of the GNU General Public License version # 2 along with this work; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. # # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA # or visit www.oracle.com if you need additional information or have any # questions. # application.title=nashorn # location of JDK embedded ASM sources jdk.java.base.dir=src/java.base/share/classes jdk.asm.src.dir=${jdk.java.base.dir}/jdk/internal/org/objectweb/asm # location of JDK embedded jline sources jdk.jline.src.dir=src/jdk.internal.le/share/classes # source and target levels build.compiler=modern jdk.build.dir=build nashorn.make.dir=make/nashorn javadoc.base.url=https://docs.oracle.com/javase/9/docs/api/ javadoc.pkg.list=make/nashorn javadoc.option=\ -tag "implSpec:a:Implementation Requirements:" \ -tag "implNote:a:Implementation Note:" \ -tag "moduleGraph:a:Module Graph" # nashorn version information nashorn.version=0.1 nashorn.fullversion=0.1 nashorn.product.name=Oracle Nashorn # This directory is removed when the project is cleaned: build.dir=${jdk.build.dir}/nashorn build.classes.dir=${build.dir}/classes build.zip=${build.dir}/nashorn.zip build.gzip=${build.dir}/nashorn.tar.gz nashorn.override.option=\ --patch-module jdk.scripting.nashorn=${build.classes.dir}/jdk.scripting.nashorn \ --patch-module jdk.scripting.nashorn.shell=${build.classes.dir}/jdk.scripting.nashorn.shell \ --patch-module jdk.dynalink=${build.classes.dir}/jdk.dynalink # project directory of ant task nashorntask.dir=${nashorn.make.dir}/buildtools/nashorntask nashorntask.dist.dir=${build.dir}/nashorntask/dist # nashorn Shell tool nashorn.shell.tool=jdk.nashorn.tools.Shell # nasgen tool nasgen.tool=jdk.nashorn.internal.tools.nasgen.Main nasgen.module.imports=\ --add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED \ --add-exports java.base/jdk.internal.org.objectweb.asm.util=ALL-UNNAMED # parallel test runner tool parallel.test.runner=jdk.nashorn.internal.test.framework.ParallelTestRunner # test classes directory build.test.classes.dir=${build.dir}/test/classes # nashorn test jar - internal tests jar and api tests jar nashorn.internal.tests.jar=${build.dir}/nashorn-internal-tests.jar nashorn.api.tests.jar=${build.dir}/nashorn-api-tests.jar # test results directory build.test.results.dir=${build.dir}/test/reports build.nosecurity.test.results.dir=${build.dir}/test/nosecurity/reports build.nooptimistic.test.results.dir=${build.dir}/test/nooptimistic/reports # This directory is removed when the project is cleaned: dist.dir=build/nashorn/dist dynalink.jar=${dist.dir}/dynalink.jar nashorn.jar=${dist.dir}/nashorn.jar jjs.jar=${dist.dir}/jjs.jar dist.javadoc.dir=${dist.dir}/javadoc dist.nashornapi.javadoc.dir=${dist.javadoc.dir}/nashornapi dist.dynalinkapi.javadoc.dir=${dist.javadoc.dir}/dynalinkapi # configuration for java flight recorder run.test.jvmargs.jfr=-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,disk=true,dumponexit=true,dumponexitpath=${build.dir},stackdepth=128 # test library location test.lib=test/nashorn/lib # jars refererred file.reference.testng.jar=${test.lib}${file.separator}testng-6.8.jar file.reference.jcommander.jar=${test.lib}${file.separator}jcommander-1.27.jar file.reference.bsh.jar=${test.lib}${file.separator}bsh-2.0b4.jar file.reference.snakeyaml.jar=${test.lib}${file.separator}snakeyaml-1.6.jar file.reference.asmtools.jar=${test.lib}${file.separator}asmtools-60.jar # TestNG ant task classpath testng.ant.classpath=\ ${file.reference.testng.jar}${path.separator}\ ${file.reference.jcommander.jar}${path.separator}\ ${file.reference.bsh.jar}${path.separator}\ ${file.reference.snakeyaml.jar}${path.separator} # Set testng verbose level # From TestNG docs: "the verbosity level (0 to 10 where 10 is most detailed) # Actually, this is a lie: you can specify -1 and this will put TestNG in # debug mode (no longer slicing off stack traces and all)." testng.verbose=2 # TestNG listeners - we want to replace TestNG's own JUnit # reporter, but want everything else provided by default # Unfortunately, we've to clone the other default reporters here. testng.listeners=\ org.testng.reporters.SuiteHTMLReporter, \ org.testng.reporters.TestHTMLReporter, \ org.testng.reporters.jq.Main, \ org.testng.reporters.FailedReporter, \ org.testng.reporters.XMLReporter \ org.testng.reporters.EmailableReporter, \ jdk.nashorn.internal.test.framework.JSJUnitReportReporter javac.debug=true javac.encoding=ascii javac.test.classpath=\ ${build.test.classes.dir}${path.separator}\ ${file.reference.testng.jar}${path.separator}\ ${file.reference.jcommander.jar}${path.separator}\ ${file.reference.bsh.jar}${path.separator}\ ${file.reference.snakeyaml.jar} test.module.imports.compile.time=\ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.ir=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.codegen=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.parser=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.objects=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.doubleconv=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.linker=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.events=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.options=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.regexp=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.internal.runtime.regexp.joni=ALL-UNNAMED \ --add-exports jdk.scripting.nashorn/jdk.nashorn.tools=ALL-UNNAMED \ --add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED test.module.imports.runtime=\ ${test.module.imports.compile.time} \ --add-opens jdk.scripting.nashorn/jdk.nashorn.internal.runtime=ALL-UNNAMED \ --add-opens jdk.scripting.nashorn/jdk.nashorn.internal.runtime.doubleconv=ALL-UNNAMED meta.inf.dir=${nashorn.module.src.dir}/META-INF run.classpath=\ ${build.classes.dir} # test scripts to run test.dir=test/nashorn test.nosecurity.dir=${test.dir}/script/nosecurity test.script.dir=${test.dir}/script test.basic.dir=${test.script.dir}/basic test.maptests.dir=${test.script.dir}/maptests test.error.dir=${test.script.dir}/error test.sandbox.dir=${test.script.dir}/sandbox test.trusted.dir=${test.script.dir}/trusted test.external.dir=${test.script.dir}/external test262.dir=${test.external.dir}/test262 test262.suite.dir=${test262.dir}/test/suite testjfx.dir=${test.script.dir}/jfx testmarkdown.dir=${test.script.dir}/markdown test-sys-prop.test.dir=${test.dir} test-sys-prop.test.js.roots=${test.basic.dir} ${test.maptests.dir} ${test.error.dir} ${test.sandbox.dir} ${test.trusted.dir} test-sys-prop.test262.suite.dir=${test262.suite.dir} test-sys-prop.es5conform.testcases.dir=${test.external.dir}/ES5Conform/TestCases test-sys-prop.test.basic.dir=${test.basic.dir} test-sys-prop.test.external.dir=${test.external.dir} test-sys-prop.test.maptests.dir=${test.maptests.dir} test-sys-prop.test.sandbox.dir=${test.sandbox.dir} test-sys-prop.test.trusted.dir=${test.trusted.dir} test-sys-prop-no-security.test.dir=${test.dir} test-sys-prop-no-security.test.js.roots=${test.nosecurity.dir} # framework root for our script tests test-sys-prop.test.js.framework=${test.script.dir}/assert.js test-sys-prop-no-security.test.js.framework=${test.script.dir}/assert.js # Control the verbosity of ParserTest test-sys-prop.parsertest.verbose=false # turn on/off scripting mode for parser tests test-sys-prop.parsertest.scripting=true test-sys-prop.parserapitest.verbose=false # turn on/off test262 scripts for parser tests test-sys-prop.parsertest.test262=false test-sys-prop.parserapitest.test262=false # Control the verbosity of the CompilerTest test-sys-prop.compilertest.verbose=false # turn on/off scripting mode for compiler tests test-sys-prop.compilertest.scripting=true # turn on/off test262 scripts for compiler tests test-sys-prop.compilertest.test262=false # test directory to be excluded. test-sys-prop.test.js.exclude.dir=${test.script.dir}/currently-failing ${test.external.dir} # run everything that's js in here, without checking file headers for test annotations test-sys-prop.test.js.unchecked.dir=${test262.dir} # test root for octane octane-test-sys-prop.test.js.roots=${test.external.dir}/octane/ # run octane benchmars in separate processes? (recommended) octane-test-sys-prop.separate.process=true # framework root for octane octane-test-sys-prop.test.js.framework=${test.basic.dir}/run-octane.js # test root for sunspider sunspider-test-sys-prop.test.js.roots=${test.external.dir}/sunspider/tests/sunspider-1.0.2/ # framework root for sunspider sunspider-test-sys-prop.test.js.framework=${test.basic.dir}/runsunspider.js # list of tests to be excluded sunspider-test-sys-prop.test.js.exclude.list= # execute our script tests in shared nashorn context or not? test-sys-prop.test.js.shared.context=false # execute test262 tests in shared nashorn context or not? test262-test-sys-prop.test.js.shared.context=true # test262 test root test262-test-sys-prop.test.js.roots=${test262.suite.dir} # test262 enable/disable strict mode tests test262-test-sys-prop.test.js.enable.strict.mode=true # file containing test262 tests to be excluded # test262-test-sys-prop.test.js.excludes.file=${test262.dir}/test/config/excludelist.xml # list of test262 files to be excluded test262-test-sys-prop.test.js.exclude.list=\ ${test262.suite.dir}/ch07/7.4/S7.4_A6.js \ ${test262.suite.dir}/ch07/7.8/7.8.5/S7.8.5_A1.4_T2.js \ ${test262.suite.dir}/ch15/15.2/15.2.3/15.2.3.6/15.2.3.6-4-170.js # list of test262 test dirs to be excluded test262-test-sys-prop.test.js.exclude.dir=\ ${test262.suite.dir}/intl402/ \ ${test262.suite.dir}/bestPractice/ test262-test-sys-prop.test.failed.list.file=${build.dir}/test/failedTests # test262 test frameworks test262-test-sys-prop.test.js.framework=\ --class-cache-size=10 \ --no-java \ --no-typed-arrays \ -timezone=PST \ ${test.script.dir}/test262.js \ ${test262.dir}/test/harness/framework.js \ ${test262.dir}/test/harness/sta.js # testmarkdown test root testmarkdown-test-sys-prop.test.js.roots=${testmarkdown.dir} # execute testmarkdown tests in shared nashorn context or not? testmarkdown-test-sys-prop.test.js.shared.context=false # framework root for markdown script tests testmarkdown-test-sys-prop.test.js.framework=\ ${test.script.dir}${file.separator}markdown.js # testjfx test root testjfx-test-sys-prop.test.js.roots=${testjfx.dir} # execute testjfx tests in shared nashorn context or not? testjfx-test-sys-prop.test.js.shared.context=false # framework root for our script tests testjfx-test-sys-prop.test.js.framework=\ -fx \ ${test.script.dir}${file.separator}jfx.js file.reference.jemmyfx.jar=${test.lib}${file.separator}JemmyFX.jar file.reference.jemmycore.jar=${test.lib}${file.separator}JemmyCore.jar file.reference.jemmyawtinput.jar=${test.lib}${file.separator}JemmyAWTInput.jar file.reference.jfxrt.jar=${java.home}${file.separator}lib${file.separator}ext${file.separator}jfxrt.jar testjfx.run.test.classpath=\ ${file.reference.jemmyfx.jar}${path.separator}\ ${file.reference.jemmycore.jar}${path.separator}\ ${file.reference.jemmyawtinput.jar}${path.separator}\ ${file.reference.testng.jar}${path.separator}\ ${file.reference.jcommander.jar}${path.separator}\ ${file.reference.bsh.jar}${path.separator}\ ${file.reference.snakeyaml.jar}${path.separator}\ ${nashorn.internal.tests.jar}${path.separator}\ ${nashorn.api.tests.jar} # testjfx VM options for script tests with @fork option testjfx-test-sys-prop.test.fork.jvm.options=${run.test.jvmargs.main} -Xmx${run.test.xmx} -cp ${testjfx.run.test.classpath} run.test.classpath=\ ${file.reference.testng.jar}${path.separator}\ ${file.reference.jcommander.jar}${path.separator}\ ${file.reference.bsh.jar}${path.separator}\ ${file.reference.snakeyaml.jar}${path.separator}\ ${nashorn.internal.tests.jar}${path.separator}\ ${nashorn.api.tests.jar} dynalink.module.src.dir=src/jdk.dynalink/share/classes dynalink.module.classes.dir=${build.classes.dir}/jdk.dynalink nashorn.module.src.dir=src/jdk.scripting.nashorn/share/classes nashorn.module.classes.dir=${build.classes.dir}/jdk.scripting.nashorn nashorn.shell.module.src.dir=src/jdk.scripting.nashorn.shell/share/classes nashorn.shell.module.classes.dir=${build.classes.dir}/jdk.scripting.nashorn.shell src.dir=${dynalink.module.src.dir}${path.separator}\ ${nashorn.module.src.dir}${path.separator}\ ${nashorn.shell.module.src.dir}${path.separator}\ ${jdk.jline.src.dir} test.src.dir=test/nashorn/src # -Xmx is used for all tests, -Xms only for octane benchmark run.test.xmx=2G run.test.xms=2G # uncomment this jfr.args to enable light recordings. the stack needs to be cranked up to 1024 frames, # or everything will as of the now drown in lambda forms and be cut off. # #jfr.args=-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,disk=true,dumponexit=true,dumponexitpath="test_suite.jfr",stackdepth=1024 \ jfr.args= run.test.user.language=tr run.test.user.country=TR run.test.jvmargs.common=\ -server \ ${test.module.imports.runtime} \ ${run.test.jvmargs.external} \ --add-modules jdk.scripting.nashorn.shell \ ${nashorn.override.option} \ -Dfile.encoding=UTF-8 \ -Duser.language=${run.test.user.language} \ -Duser.country=${run.test.user.country} \ -Dnashorn.typeInfo.cacheDir=${build.dir}${file.separator}test${file.separator}type_info_cache \ ${jfr.args} \ -XX:+HeapDumpOnOutOfMemoryError # turn on assertions for tests run.test.jvmargs.main=${run.test.jvmargs.common} -esa -ea # Extra jvmargs that might be useful for debugging # and performance improvements/monitoring # # -XX:+UnlockDiagnosticVMOptions # # turn off compressed class pointers in metaspace # -XX:-UseCompressedKlassPointers # # dump the heap after every GC # -XX:+PrintHeapAtGC # # manually set a metaspace size for class data # -XX:ClassMetaspaceSize=300M # # print out methods compiled # -XX:+PrintCompilation # # print all compiled nmethods with oopmaps and lots of other info # -XX:+PrintNMethods # # activate the generic "UseNewCode" flag to test whatever functionality # lies behind it. This is the preferred way to test a, yet flagless, # feature in HotSpot - for example, the uncommon trap placement fix # was hidden behind this flag before it became the default # # -XX:+UnlockDiagnosticVMOptions -XX:+UseNewCode # # Crank up the type profile level to 222, which has some warmup # penalties, but produces much better code for JavaScript, where better # and more intrusive type profiling is required to get rid of # a large amount of unnecessary guard code, that could not otherwise # be eliminated # # -XX:TypeProfileLevel=222 # # Use best known performance options for octane run.test.jvmargs.octane.main=${run.test.jvmargs.common} -XX:TypeProfileLevel=222 # Security manager args - make sure that we run with the nashorn.policy that the build creates run.test.jvmsecurityargs=-Xverify:all -Djava.security.manager -Djava.security.policy=${build.dir}/nashorn.policy -Djava.security.properties=${build.dir}/nashorn.security.properties # VM options for script tests with @fork option test-sys-prop.test.fork.jvm.options=${run.test.jvmargs.main} -Xmx${run.test.xmx} ${run.test.jvmsecurityargs} -cp ${run.test.classpath} # VM options for no-security script tests with @fork option - same as above but without jvmsecurityargs test-sys-prop-no-security.test.fork.jvm.options=${run.test.jvmargs.main} -Xmx${run.test.xmx} -cp ${run.test.classpath} # path of rhino.jar for benchmarks rhino.dir= rhino.jar=${rhino.dir}/js.jar v8.shell=d8 # How many iterations should 'ant octane' run for each # benchmark octane.iterations=25 # List of octane tests to run, as properties prefixed with # "octane.benchmark." mapping to the benchmark name in # the test harness # # Octane tests that are disabled should have their entire line # commented out Tests may be disabled for functionality reasons when # they have bugs or when the runtime doesn't handle them (yet) octane.benchmark.box2d=box2d #octane.benchmark.code-load=code-load octane.benchmark.crypto=crypto octane.benchmark.deltablue=deltablue octane.benchmark.earley-boyer=earley-boyer octane.benchmark.gbemu=gbemu octane.benchmark.navier-stokes=navier-stokes octane.benchmark.mandreel=mandreel octane.benchmark.pdfjs=pdfjs octane.benchmark.raytrace=raytrace octane.benchmark.regexp=regexp octane.benchmark.richards=richards octane.benchmark.splay=splay #octane.benchmark.typescript=typescript #octane.benchmark.zlib=zlib #path to rhino jar file octaneperf-sys-prop.rhino.jar=${rhino.jar} #timeout for performance tests in minutes octaneperf-sys-prop.timeout.value=10 #how many iterations to run sunspider after warmup sunspider.iterations=3000 ################# # code coverage # ################# #enable/disable code coverage; please redifine in the ${user.home}/.nashorn.project.local.properties make.code.coverage=false #type of codecoverage; one of static or dynamic. Now only dynamic is supported jcov=dynamic #naming of CC results #NB directory specified in the cc.dir will be cleaned up!!! cc.dir=${build.dir}/Codecoverage_Nashorn cc.result.file.name=CC_${jcov}_nashorn.xml #dynamic CC parameters; please redefine in the ${user.home}/.nashorn.project.local.properties jcov2.lib.dir=${build.dir}/jcov2/lib jcov.jar=${jcov2.lib.dir}/jcov.jar cc.include=jdk\.nashorn\.* cc.exclude=jdk\.nashorn\.internal\.scripts\.* cc.dynamic.genereate.template=true cc.template=${cc.dir}/CC_template.xml cc.dynamic.args=-javaagent:${jcov.jar}=include=${cc.include},exclude=${cc.exclude},type=all,verbose=0,file=${cc.dir}/${cc.result.file.name}