Commit Graph

199 Commits

Author SHA1 Message Date
Athijegannathan Sundararajan
bf6e4f1ec7 8010924: Dealing with undefined property gets you a fatal stack
Reviewed-by: lagergren, jlaskey
2013-03-28 20:48:25 +05:30
Lana Steuck
1008ef9192 Merge 2013-03-26 12:08:00 -07:00
Athijegannathan Sundararajan
97d7f98a21 8010720: Linkage problem with java.lang.String.length()
Reviewed-by: hannesw, lagergren
2013-03-26 18:26:19 +05:30
Marcus Lagergren
f20cadfd8b 8010706: -Dnashorn.args system property to create command lines to wrapped nashorn.jar:s
Reviewed-by: hannesw, sundar
2013-03-26 08:42:35 +01:00
Athijegannathan Sundararajan
a9423b7ebf 8010709: org on the top level doesn't resolve
Reviewed-by: lagergren, hannesw
2013-03-25 18:20:16 +05:30
Marcus Lagergren
897aab045e 8017010: index evaluation to a temporary location for index operator much change temporaries to slots, but never scoped vars
Reviewed-by: hannesw, sundar
2013-03-25 12:01:06 +01:00
Attila Szegedi
7188961426 8010652: Eliminate non-child references in Block/FunctionNode, and make few node types immutable
Reviewed-by: jlaskey, lagergren
2013-03-23 00:58:39 +01:00
David Katleman
0fbaf75ff1 Added tag jdk8-b82 for changeset fd698c5ee684 2013-03-21 10:43:41 -07:00
Pavel Stepanov
e4b8273cc6 8009969: CodeCoverage should use template
Reviewed-by: jlaskey, sundar
2013-03-19 11:03:24 -03:00
Athijegannathan Sundararajan
c846064c8f 8010199: javax.script.Invocable implementation for nashorn does not return null when matching functions are missing
Reviewed-by: lagergren, jlaskey
2013-03-18 21:03:11 +05:30
Athijegannathan Sundararajan
5aea724d29 8010145: removed workaround "init.js" in nashorn repo
Reviewed-by: jlaskey, lagergren
2013-03-15 21:52:40 +05:30
Marcus Lagergren
e05970ca52 8010147: Forgot to add EXPECTED files for lazy and eager sunspider test
Reviewed-by: sundar, jlaskey
2013-03-15 16:07:13 +01:00
Marcus Lagergren
2aeaf10fff 8009982: Lazy execution bugfix. Added lazy sunspider unit test. Added mandreel to compile-octane test. Fixed warnings
Reviewed-by: sundar, jlaskey
2013-03-14 14:49:55 +01:00
Athijegannathan Sundararajan
d671cda73c 8009868: For loop with "true" as condition results in AssertionError in codegen
Reviewed-by: jlaskey, hannesw, lagergren
2013-03-12 21:17:47 +05:30
Marcus Lagergren
1af08ef100 8009718: Lazy execution architecture continued - ScriptFunctionData is either final or recompilable. Moved ScriptFunctionData creation logic away from runtime to compile time. Prepared for method generation/specialization. Got rid of ScriptFunctionImplTrampoline whose semantics could be done as part of the relinking anyway. Merge with the lookup package change
Reviewed-by: attila, jlaskey
2013-03-12 15:30:53 +01:00
Athijegannathan Sundararajan
bb6c34adc7 8009757: Package access clean up and refactoring
Reviewed-by: jlaskey, lagergren, attila
2013-03-12 18:12:42 +05:30
Athijegannathan Sundararajan
d9cd2f6ad3 8009559: clean up method handle lookup code
Reviewed-by: ahgross, jlaskey, attila, sundar
2013-03-09 21:49:32 +05:30
Athijegannathan Sundararajan
4f3800def1 8009553: Object.create(Array.prototype) doesn't respect reset length
Reviewed-by: jlaskey, lagergren
2013-03-06 22:38:18 +05:30
James Laskey
dc1c8a5cd7 8009379: Remove $ from generated class names
Reviewed-by: attila, lagergren
2013-03-04 11:01:26 -04:00
Hannes Wallnöfer
242e864599 8008370: coffee script compiler doesn't work with Nashorn
Reviewed-by: lagergren, attila
2013-03-04 11:44:54 +01:00
Jim Laskey
87cc6fe4e6 Merge 2013-03-02 11:26:47 -04:00
Athijegannathan Sundararajan
1909e5f9d6 8009263: Fix all javadoc errors in nashorn code
Reviewed-by: hannesw, lagergren
2013-03-01 15:58:29 +05:30
Hannes Wallnöfer
bd2109d3fa 8009240: RegExpScanner code is inefficient and too complex
Reviewed-by: jlaskey, lagergren
2013-02-28 22:59:31 +01:00
Athijegannathan Sundararajan
66c2fc6e66 8009229: ant makefile default target should be "test"
Reviewed-by: lagergren, jlaskey
2013-02-28 20:31:30 +05:30
Attila Szegedi
c44210c971 8009150: Previous dead code elimination was incomplete
Reviewed-by: hannesw, lagergren
2013-02-27 16:25:15 +01:00
Attila Szegedi
5b7d451617 8009146: Eliminate some dead code in preparation for immutable AST
Reviewed-by: hannesw, lagergren
2013-02-27 15:49:05 +01:00
Attila Szegedi
a1ade22dc0 8009143: Eliminate Dynalink dependency on java.beans
Reviewed-by: jlaskey, lagergren, sundar
2013-02-27 15:20:26 +01:00
Alan Bateman
9f8e932d41 8008950: jdk8/tl failing with SetupJavaCompilation BUILD_NASGEN contains missing directory -c on Windows
Reviewed-by: chegar, sundar
2013-02-27 14:12:45 +00:00
Athijegannathan Sundararajan
7bdfa989ff 8009021: nasgen should be run on boot jdk rather than currenly built jdk
Reviewed-by: jlaskey
2013-02-26 22:57:51 +05:30
Attila Szegedi
0248a98842 8006984: Introducing local into a function inside with statement confuses its scope
Reviewed-by: jlaskey, lagergren, sundar
2013-02-25 16:51:04 +01:00
Athijegannathan Sundararajan
445b8d2438 8008789: Enable java access and nashorn runtime tests for jtreg
Reviewed-by: lagergren, jlaskey, hannesw
2013-02-25 18:13:23 +05:30
Athijegannathan Sundararajan
f688068adf 8008731: Separate configuration environment (options, error/output writer etc.) from Context
Reviewed-by: hannesw, lagergren
2013-02-25 16:58:31 +05:30
James Laskey
f58612a3ad 8008776: Revise BuildNashorn.gmk for changes in new build system
Reviewed-by: jjh
2013-02-22 23:33:46 -04:00
Athijegannathan Sundararajan
48a5d9cb5f 8008729: Make sure that we can run basic jsr223 tests using jtreg
Reviewed-by: jlaskey, hannesw, lagergren
2013-02-22 22:39:23 +05:30
Hannes Wallnöfer
1867421e9b 8006028: Integrate Joni regexp engine with Nashorn
Reviewed-by: lagergren, attila
2013-02-22 17:00:22 +01:00
Hannes Wallnöfer
1c711a064a 8008093: Make RegExp engine pluggable
Reviewed-by: lagergren, attila
2013-02-22 16:31:10 +01:00
James Laskey
33ebb8d71d 8008721: Tweaks to make all NEWBUILD=false round 4
Reviewed-by: jjh
2013-02-22 10:39:00 -04:00
Marcus Lagergren
0685f8e938 8007002: Replace implicit exception throwing methods with explicit throws - simplify control flow and remove useless code
Reviewed-by: attila, hannesw
2013-02-22 12:22:16 +01:00
Eugene Drobitko
406f72e5e9 8008575: Re-integrate code coverage
Co-authored-by: Ilya Dergalin <ilya.dergalin@oracle.com>
Reviewed-by: attila, hannesw
2013-02-22 11:27:40 +01:00
Marcus Lagergren
90b971a60d 8008554: load was broken for URLs
Reviewed-by: attila, sundar
2013-02-22 08:57:22 +01:00
James Laskey
fc7f562588 8008447: Tweaks to make all NEWBUILD=false round 3
Reviewed-by: jjh, sundar
2013-02-21 15:24:31 -04:00
Marcus Lagergren
9ff7a57a0f 8008648: Lazy JIT scope and callee semantics bugfixes. Broke out wallclock timer
Reviewed-by: attila, hannesw
2013-02-21 16:57:21 +01:00
Klara Ward
017e73cbd0 8008166: URL handling was broken on windows, causing "load" to malfunction
Reviewed-by: attila, jlaskey
2013-02-20 16:43:21 +01:00
Athijegannathan Sundararajan
4a5a1e4404 8008207: Make constants array and source fields private
Reviewed-by: hannesw, lagergren
2013-02-20 17:08:32 +05:30
Athijegannathan Sundararajan
be8f1b2b35 8008448: Add coverage test for jdk.nashorn.internal.ir.debug.JSONWriter
Reviewed-by: jlaskey, attila
2013-02-19 20:33:07 +05:30
Jim Laskey
b5c0480f54 Merge 2013-02-19 09:47:02 -04:00
James Laskey
564d7d3add 8008420: Tweaks to make all NEWBUILD=false round 2
Reviewed-by: jjh
2013-02-19 09:46:28 -04:00
Athijegannathan Sundararajan
350c3e01c1 8008387: Improve code coverage tests for JSObjectLinker and NashornBottomLinker
Reviewed-by: lagergren, jlaskey, hannesw
2013-02-18 20:41:12 +05:30
Attila Szegedi
ccce3fa803 8008371: Fix Dynalink compiler warnings and whitespace
Reviewed-by: jlaskey, sundar
2013-02-18 16:00:15 +01:00
Hannes Wallnöfer
9a4e9fe31e 8008351: Avoid using String.replace(String, String) in codegen
Reviewed-by: sundar, attila
2013-02-18 10:36:18 +01:00
Athijegannathan Sundararajan
b1f72f6fd2 8008305: ScriptEngine.eval should offer the ability to provide a codebase
Reviewed-by: lagergren, hannesw, attila
2013-02-18 14:41:58 +05:30
Athijegannathan Sundararajan
1fb8213bb0 8008298: Add tests to cover specialized versions of Math functions
Reviewed-by: jlaskey, lagergren
2013-02-15 20:40:05 +05:30
Athijegannathan Sundararajan
c09d1ba6d7 8008291: Add more tests for better coverage of objects, scripting and parser packages
Reviewed-by: lagergren, jlaskey
2013-02-15 18:30:19 +05:30
Marcus Lagergren
7d9a872e3f 8008239: Unpublicized parts of the code generator package that were only package internal
Reviewed-by: hannesw, attila
2013-02-15 09:44:15 +01:00
Hannes Wallnöfer
8edbed784d 8008215: break in catch clause causes java.lang.VerifyError: Inconsistent stackmap
Reviewed-by: jlaskey, lagergren
2013-02-15 09:18:05 +01:00
James Laskey
f95919ab1e 8008231: Fix build system to accommodate integration of dynalink
Reviewed-by: jlaskey
2013-02-14 11:32:49 -04:00
Hannes Wallnöfer
6aeeee6b63 8008198: java.lang.AssertionError: Invalid break target class jdk.nashorn.internal.ir.TryNode
Reviewed-by: attila, jlaskey
2013-02-14 14:07:53 +01:00
Attila Szegedi
85c55a2aa4 8007990: No access to interface methods on a restricted class
Reviewed-by: jlaskey, lagergren, sundar
2013-02-14 13:51:54 +01:00
Marcus Lagergren
af9c882b95 8008206: The allInteger case for SwitchNode generation in CodeGenerator assumes integer LITERALS only
Reviewed-by: sundar, jlaskey
2013-02-14 13:52:12 +01:00
Attila Szegedi
82f8cef55c 8008085: Integrate Dynalink source code into Nashorn codebase
Reviewed-by: jlaskey, lagergren, sundar
2013-02-14 13:22:26 +01:00
Marcus Lagergren
7c466c84eb 8008199: Lazy compilation and trampoline implementation
The code pipeline now supports lazy compilation, which can be used to only compile certain FunctionNodes and leave others be, saving startup time. When these uncompiled nodes are hit, a trampoline will force them to be recompiled. This can also be used to specialize compilation fixing parameter types and return types to a callsite specific compilation. This will give performance.

Reviewed-by: attila, sundar
2013-02-14 13:01:52 +01:00
Athijegannathan Sundararajan
022533a749 8008197: Cross script engine function calls do not work as expected
Reviewed-by: lagergren, hannesw
2013-02-14 14:16:58 +05:30
Athijegannathan Sundararajan
9f6e3f08f2 8008193: test262 tests should be run with security manager enabled
Reviewed-by: jlaskey
2013-02-14 09:14:31 +05:30
Athijegannathan Sundararajan
ecc2be22e3 8008103: Source object should maintain URL of the script source as a private field
Reviewed-by: lagergren, jlaskey
2013-02-13 19:59:30 +05:30
Hannes Wallnöfer
b8d10c0a0e 8008096: TokenStream buffer should grow exponentially
Reviewed-by: attila, lagergren, sundar
2013-02-13 13:30:21 +01:00
Attila Szegedi
d50e3823e4 8007900: Function binding is inefficient
Reviewed-by: jlaskey, lagergren
2013-02-12 12:47:51 +01:00
Hannes Wallnöfer
b98a77d26c 8007956: Wrong or obsolete system properties in docs/DEVELOPER_README
Reviewed-by: attila, jlaskey
2013-02-12 13:55:05 +01:00
Athijegannathan Sundararajan
1e1537c13f 8007915: Nashorn IR, codegen, parser packages and Context instance should be inaccessible to user code
Reviewed-by: lagergren, jlaskey, attila
2013-02-11 21:26:06 +05:30
Attila Szegedi
710f06674d 8006943: Fix order of function method arguments to be (callee, thisObject)
Reviewed-by: jlaskey, lagergren
2013-02-09 16:58:48 +01:00
James Laskey
32d71c7cb9 8006222: Move slot from SpillProperty to Property
Reviewed-by: hannesw, lagergren
2013-02-08 09:19:38 -04:00
Hannes Wallnöfer
f2dc010c16 8007718: Make static RegExp properties fully compatible to other engines
Reviewed-by: lagergren, sundar
2013-02-07 15:33:17 +01:00
Hannes Wallnöfer
37905fb387 8007627: Support @Getter annotation on constructor
Reviewed-by: attila, lagergren
2013-02-07 14:58:41 +01:00
Athijegannathan Sundararajan
b247ddfcc3 8007715: Make sure that not all tests run with AllPermission
Reviewed-by: lagergren, attila
2013-02-07 17:17:29 +05:30
James Laskey
57ef7ce075 8007643: Add testing for quit and exit
Reviewed-by: sundar
2013-02-06 12:51:09 -04:00
James Laskey
574016d0d3 8007629: Remove extraneous quit from shell.js
Reviewed-by: sundar, hannesw
2013-02-06 11:57:51 -04:00
James Laskey
5900e641b0 8007545: jjs input evalinput need to be NOT_ENUMERABLE
Reviewed-by: sundar, lagergren
2013-02-06 08:42:19 -04:00
Athijegannathan Sundararajan
c95d492268 8007619: Add support for deprecated properties of RegExp constructor
Reviewed-by: lagergren, hannesw
2013-02-06 17:56:12 +05:30
Hannes Wallnöfer
4eee363f14 8007273: Creation of ScriptFunctions can be refactored
Reviewed-by: lagergren, attila
2013-02-06 10:31:58 +01:00
Athijegannathan Sundararajan
292a819b53 8007523: VerifyError on script that uses regular expression literals with ternary operator
Reviewed-by: lagergren
2013-02-05 22:07:04 +05:30
Athijegannathan Sundararajan
ac9ca521ad 8007522: IllegalStateException thrown from String.prototype.search function
Reviewed-by: jlaskey
2013-02-05 21:00:04 +05:30
Athijegannathan Sundararajan
be500502ec 8007521: $ENV should be undefined when security manager is present
Reviewed-by: hannesw, jlaskey
2013-02-05 18:44:54 +05:30
Athijegannathan Sundararajan
31aa060b11 8007452: add scripting programmers doc changes for nashorn
Reviewed-by: jlaskey, hannesw
2013-02-05 09:11:03 +05:30
James Laskey
233a9042cf 8006191: cmd -> exec("cmd") in script mode
Reviewed-by: sundar, lagergren, hannesw
2013-02-04 14:48:35 -04:00
Marcus Lagergren
8b7a8d75b3 8007215: Varargs broken for the case of passing more than the arg limit arguments
Reviewed-by: jlaskey, attila
2013-02-04 16:20:05 +01:00
Attila Szegedi
bd2303d9e4 8007460: var assignment to a parameter in a varargs method causes compilation error
Reviewed-by: jlaskey, lagergren
2013-02-04 15:59:44 +01:00
James Laskey
58f1fb6ecd 8007455: Extraneous $(ECHO) in make/Makefile
Reviewed-by: sundar
2013-02-04 08:13:05 -04:00
Hannes Wallnöfer
4f2891ca8d 8007060: Primitive wrap filter throws ClassCastException in test262parallel
Reviewed-by: sundar, jlaskey, lagergren
2013-02-01 02:24:15 +01:00
Attila Szegedi
fe52eb5992 8006529: Methods always get callee - it should be conditional
This commit streamlines the bytecode function signatures, prologue, local variable use, scope creation, and invocation. It started out quite innocently when we noticed that we always emit __callee__ parameters for all functions even when they are not needed, but it turned out to be quite a deep rabbit hole. In the end, I identified exact conditions when functions need to have a callee parameter, when they need to receive parent scope, when they need to create their own scope, when they need to have variable arity signature, and when they need to have an "arguments" object, and made sure that callee parameters in signatures only show up when they are needed, that parent function's scope is only passed to a child function when it is needed, that the function only creates its own scope when it is needed. In crypto.js, the number of scopes dropped from 446 to 244, and the number of callees dropped from 315 to 145.

Reviewed-by: jlaskey, lagergren
2013-01-31 18:34:42 +01:00
Athijegannathan Sundararajan
bdcffc23f7 8007286: Add JavaAdapter and importPackage to compatibility script
Reviewed-by: lagergren, jlaskey
2013-01-31 20:07:40 +05:30
Athijegannathan Sundararajan
fcd28bdcc5 8007140: Java.extend crashes when attempting to extend java.lang.Object
Reviewed-by: lagergren, hannesw
2013-01-30 21:15:14 +05:30
Hannes Wallnöfer
411b70d54a 8007109: Regression: String(ConsString) does not flatten argument to String
Reviewed-by: sundar, lagergren
2013-01-30 14:57:19 +01:00
Athijegannathan Sundararajan
8cd63a75f2 8007132: Java objects returned from constructor functions are lost
Reviewed-by: hannesw, lagergren, attila
2013-01-30 17:52:54 +05:30
Marcus Lagergren
30b950d2d2 8007062: Split Lower up into Lower/Attr/FinalizeTypes. Integrate AccessSpecalizer into FinalizeTypes
Lower suffered from being a "God class" trying to do everything at once.  As Nashorn code generation has grown, so has Lower. It does several post processing passes, tries to do several things at once even though all type information isn't in place, adjusting state afterwards and so on. It also performs control flow analysis, type attribution and constant folding, and  everything else code generation related before byte code emission. I have now separated the compilation process into Lower (create low level nodes from high level ones, copy code such as finally block inlining etc), Attr (assign types and symbols to all nodes - freeze slot and scope information) and FinalizeTypes (insert explicit casts, specialize invoke dynamic types for scope accesses). I've removed the kludgy AccessSpecializer, as this now integrates naturally with typing. Everything is now much easier to read and each module performs only one thing. I have added separate loggers for the separate tiers. In the process I have also fixed: (1) problems with type coercion (see test/script/basic/typecoercion.js, basically our coercion was too late and our symbol inference was erroneous. This only manifested itself in very rare occasions where toNumber coercion has side effects, such as for example when valueOf is overridden)  (2) copying literal nodes (literal copy did not use the superclass copy, which made all the Node specific fields not to be copied  (3) erroneous literal tokenization (literals shouldn't always just inherit token information from whatever node that creates them) (4) splitter weighnodes - unary nodes were considered weightless  (4) removed the hateful and kludgy "VarNode.shouldAppend", which really isn't needed when we have an attribution phase that determines self reference symbols (the only thing it was used for) (5) duplicate line number issues in the parser (6) convert bug in CodeGenerator for intermediate results of scope accesses (see test/script/basic/access-specializer.js) ... Several of these things just stopped being problems with the new architecture "can't happen anymore" and are not bug fixes per se. All tests run. No performance regressions exist that I've been able to measure. Some increases in performance were measured, but in the statistical margin of error (which is very wide as HotSpot currently has warmup issues with LambdaForms/invoke dynamic). Compile speed has not measurably increased.

Reviewed-by: jlaskey, attila
2013-01-30 12:26:45 +01:00
James Laskey
b342e3c536 8007094: Apply version to nashorn.jar manifest
Reviewed-by: sundar
2013-01-29 14:25:39 -04:00
Athijegannathan Sundararajan
ae80adfc10 8007091: Provide private API to pass application class loader for nashorn script engine
Reviewed-by: jlaskey, lagergren
2013-01-29 19:57:25 +05:30
James Laskey
0b9014a9d6 8006676: Integrate Nashorn into new build system
Reviewed-by: jlaskey
2013-01-28 16:22:03 -04:00
Athijegannathan Sundararajan
97a071dc3d 8007004: nashorn script engine should not use thread context class loader as script 'application loader'
Reviewed-by: attila, hannesw
2013-01-28 21:29:05 +05:30
Athijegannathan Sundararajan
daaeb20eff 8006983: Introduce a command line option to switch off syntactic extensions of nashorn
Reviewed-by: lagergren, attila
2013-01-28 18:10:16 +05:30
Hannes Wallnöfer
327a6cf1b7 8006766: Array-like access to characters of a string is slow
Reviewed-by: lagergren, attila
2013-01-25 17:35:31 +01:00
Athijegannathan Sundararajan
5231fef61c 8006857: ClassCastException when interface implementing function uses arguments object
Reviewed-by: jlaskey, lagergren
2013-01-24 22:38:58 +05:30