Commit Graph

486 Commits

Author SHA1 Message Date
Hannes Wallnöfer 8bf1b1cb9c 8012334: ToUint32, ToInt32, and ToUint16 don't conform to spec
Reviewed-by: lagergren, attila
2013-04-24 13:28:25 +02:00
James Laskey 18ad0aa203 8011578: -Dnashorn.unstable.relink.threshold=1 causes tests to fail
Reviewed-by: sundar, lagergren
2013-04-20 08:54:13 -03:00
Marcus Lagergren ebad1dc34d 8010701: Immutable nodes - final iteration
Reviewed-by: sundar, hannesw, jlaskey
2013-04-19 16:11:16 +02:00
Hannes Wallnöfer d2fc3d537a 8012460: RegExp regression
Reviewed-by: jlaskey, sundar
2013-04-18 14:25:45 +02:00
Athijegannathan Sundararajan 65adccc0ce 8012462: Date.prototype.toJSON does not handle non-Date 'this' as per the spec
Reviewed-by: jlaskey, hannesw
2013-04-18 15:50:30 +05:30
Athijegannathan Sundararajan 54b929b349 8012457: Function.prototype.apply should accept any array-like argument for function arguments
Reviewed-by: lagergren, jlaskey
2013-04-17 16:52:06 +05:30
Athijegannathan Sundararajan 7cc7dc2d19 8012240: Array.prototype.map.call({length: -1, get 0(){throw 0}}, function(){}).length does not throw error
Reviewed-by: lagergren, jlaskey
2013-04-15 20:12:50 +05:30
Hannes Wallnöfer 0e49b64b83 8011980: Allow NUL character in character class
Reviewed-by: sundar, lagergren
2013-04-11 12:16:39 +02:00
Athijegannathan Sundararajan 9170d68b5a 8011974: Comparator function returning negative and positive Infinity does not work as expected with Array.prototype.sort
Reviewed-by: hannesw, lagergren
2013-04-11 15:04:55 +05:30
Athijegannathan Sundararajan 30fdece570 8011960: [2,1].sort(null) should throw TypeError
Reviewed-by: hannesw, lagergren
2013-04-11 13:20:03 +05:30
Hannes Wallnöfer ad7e2cd8de 8011756: Wrong characters supported in RegExp \c escape
Reviewed-by: lagergren, attila
2013-04-10 14:08:00 +02:00
Hannes Wallnöfer 3c60983c02 8011749: Bugs with empty character class handling
Reviewed-by: lagergren, attila
2013-04-10 14:05:11 +02:00
Hannes Wallnöfer ab923e74bf 8011714: Regexp decimal escape handling still not correct
Reviewed-by: lagergren, attila
2013-04-10 14:00:11 +02:00
Hannes Wallnöfer bc7905ab3a 8009230: Nashorn rejects extended RegExp syntax accepted by all major JS engines
Reviewed-by: jlaskey, lagergren
2013-04-05 19:50:10 +02:00
Attila Szegedi 35f9ab2054 8011555: Invalid class name in with block with JavaImporter causes MH type mismatch
Reviewed-by: jlaskey, lagergren
2013-04-04 18:32:00 +02:00
Athijegannathan Sundararajan 194f867e24 8011552: Arrays with missing elements are not properly sorted
Reviewed-by: jlaskey, lagergren
2013-04-04 20:46:31 +05:30
Attila Szegedi a6439d2b72 Merge 2013-04-04 15:55:42 +02:00
Attila Szegedi 5a45a7da03 8011544: Allow subclassing Java classes from script without creating instances
Reviewed-by: jlaskey, sundar
2013-04-04 15:53:26 +02:00
Athijegannathan Sundararajan 76f2aa79e6 8011543: "".split(undefined,{valueOf:function(){throw 2}}) does not throw exception
Reviewed-by: lagergren, jlaskey
2013-04-04 18:30:30 +05:30
Athijegannathan Sundararajan e20dc52ab2 8011421: When using Object.defineProperty on arrays, PropertyDescriptor's property accessors are invoked multiple times
Reviewed-by: lagergren, hannesw
2013-04-04 13:54:51 +05:30
Athijegannathan Sundararajan 2b494aafd9 8011394: RegExp.prototype.test() does not call valueOf on lastIndex property as per the spec
Reviewed-by: lagergren, jlaskey, hannesw
2013-04-04 10:24:46 +05:30
Athijegannathan Sundararajan 84f1ee1581 8011382: Data prototype methods and constructor do not call user defined toISOString, valueOf methods per spec
Reviewed-by: lagergren, jlaskey
2013-04-03 20:17:05 +05:30
Athijegannathan Sundararajan a85fab2730 8011365: Array.prototype.join and Array.prototype.toString do not throw TypeError on null, undefined
Reviewed-by: attila, hannesw, lagergren
2013-04-03 15:27:28 +05:30
Attila Szegedi 7891ed4115 8011362: Overloaded method resolution foiled by nulls
Reviewed-by: hannesw, sundar
2013-04-03 11:13:08 +02:00
Athijegannathan Sundararajan d35b6ae5f6 8011357: Array.prototype.slice and Array.prototype.splice should not call user defined valueOf of start, end arguments more than once
Reviewed-by: lagergren, hannesw
2013-04-03 11:41:42 +05:30
Athijegannathan Sundararajan e96d207c68 8011274: Object.getOwnPropertyDescriptor(function(){"use strict"},"caller").get.hasOwnProperty("prototype") should be false
Reviewed-by: lagergren, jlaskey
2013-04-02 23:01:10 +05:30
Athijegannathan Sundararajan fcc548f01d 8011237: Object.isExtensible(Object.getOwnPropertyDescriptor(function(){"use strict"},"caller").get) should be false
Reviewed-by: lagergren, jlaskey
2013-04-02 20:42:03 +05:30
Athijegannathan Sundararajan da76d3b5ec 8011209: Object.getOwnPropertyDescriptor(function(){"use strict"},"caller").get.length is not 0
Reviewed-by: lagergren, hannesw, jlaskey
2013-04-02 17:40:53 +05:30
Marcus Lagergren fec16029ea 8010995: The bug ID 8010710 accidentally got two digits transposed in the checkin and unit test name
Reviewed-by: hannesw, sundar
2013-03-29 08:55:05 +01:00
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
Athijegannathan Sundararajan 97d7f98a21 8010720: Linkage problem with java.lang.String.length()
Reviewed-by: hannesw, lagergren
2013-03-26 18:26:19 +05:30
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
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
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
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 4f3800def1 8009553: Object.create(Array.prototype) doesn't respect reset length
Reviewed-by: jlaskey, lagergren
2013-03-06 22:38:18 +05:30
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
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
Marcus Lagergren 90b971a60d 8008554: load was broken for URLs
Reviewed-by: attila, sundar
2013-02-22 08:57:22 +01:00
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
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
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
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
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
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
Attila Szegedi d50e3823e4 8007900: Function binding is inefficient
Reviewed-by: jlaskey, lagergren
2013-02-12 12:47:51 +01: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
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
Athijegannathan Sundararajan c95d492268 8007619: Add support for deprecated properties of RegExp constructor
Reviewed-by: lagergren, hannesw
2013-02-06 17:56:12 +05:30
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
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
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
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
Athijegannathan Sundararajan 5231fef61c 8006857: ClassCastException when interface implementing function uses arguments object
Reviewed-by: jlaskey, lagergren
2013-01-24 22:38:58 +05:30
James Laskey c2bdb49b75 8006852: Move tests from JIRA for prepopulated map failures
Reviewed-by: sundar
2013-01-24 12:15:29 -04:00
Athijegannathan Sundararajan d3f071dc73 8006755: Functions inside with statements dont get correct scope
Reviewed-by: lagergren, attila
2013-01-24 17:49:03 +05:30
Athijegannathan Sundararajan 67db0ba236 8006575: Error in codegen for element access on primitive value
Reviewed-by: hannesw, lagergren
2013-01-24 16:21:32 +05:30
Hannes Wallnöfer 739b531642 8006570: This-value for non-strict functions should be converted to object
Reviewed-by: jlaskey, lagergren, attila
2013-01-22 14:14:37 +01:00
Athijegannathan Sundararajan 71e9d57ee3 8006424: Passing null or undefined to adapter class constructors results in NPE or ClassCastException
Reviewed-by: attila, hannesw, jlaskey
2013-01-16 21:26:55 +05:30
James Laskey c6c424f27a 8006304: Remove pre-population of maps for constructor produced maps
Reviewed-by: sundar
2013-01-16 07:06:40 -04:00
Attila Szegedi a2efb1b4f5 8006337: Discarded arguments for INVOKESTATIC must still be evaluated for side effects
Reviewed-by: hannesw, jlaskey, sundar
2013-01-15 18:08:50 +01:00
Attila Szegedi 311e57397d 8005958: invoking a function through INVOKESTATIC with more arguments than it declares resulted in malformed bytecode being generated
Reviewed-by: lagergren, jlaskey
2013-01-15 17:09:44 +01:00
Athijegannathan Sundararajan 164350cecf 8005982: NASHORN-71.js failing in nightlys
Reviewed-by: attila, lagergren, jlaskey
2013-01-10 19:55:38 +05:30
Marcus Lagergren 3d269485fc 8005971: runsunspider.js should check results of benchmarks
Reviewed-by: attila, hannesw
2013-01-10 10:28:57 +01:00
Athijegannathan Sundararajan ff9829969f 8005940: provide ant targets to get and update external test scripts
Reviewed-by: jlaskey, lagergren
2013-01-09 22:32:40 +05:30
Athijegannathan Sundararajan e40b456a27 8005848: assigning to global toString variable affects Object.prototype.toString
Reviewed-by: jlaskey, lagergren
2013-01-08 21:16:07 +05:30
Marcus Lagergren eb0f10508f 8005843: refSymbols lookup of unbound variable could cause NullPointerException in Lower
Reviewed-by: hannesw, attila
2013-01-08 10:52:11 +01:00
James Laskey 311f43d5a6 8005663: Update copyright year to 2013
Reviewed-by: sundar
2013-01-04 09:58:33 -04:00
Jim Laskey 98762d6ee0 8005403: Open-source Nashorn
Co-authored-by: Akhil Arora <akhil.arora@oracle.com>
Co-authored-by: Andreas Woess <andreas.woess@jku.at>
Co-authored-by: Attila Szegedi <attila.szegedi@oracle.com>
Co-authored-by: Hannes Wallnoefer <hannes.wallnoefer@oracle.com>
Co-authored-by: Henry Jen <henry.jen@oracle.com>
Co-authored-by: Marcus Lagergren <marcus.lagergren@oracle.com>
Co-authored-by: Pavel Semenov <pavel.semenov@oracle.com>
Co-authored-by: Pavel Stepanov <pavel.stepanov@oracle.com>
Co-authored-by: Petr Hejl <petr.hejl@oracle.com>
Co-authored-by: Petr Pisl <petr.pisl@oracle.com>
Co-authored-by: Sundararajan Athijegannathan <sundararajan.athijegannathan@oracle.com>
Reviewed-by: attila, hannesw, lagergren, sundar
2012-12-21 16:36:24 -04:00