Commit Graph

1925 Commits

Author SHA1 Message Date
igor%mir2.org
31d9030dd0 Reverting Ref to the original implementation which did not pass an additional
"Scriptable target" argument to Ref.(get|set|has|delete) methods. The idea was
to optimize away in many cases creation of Ref instances, but given that modern
JVM can GC short-lived objects efficiently it does not sound right to have code
complexity now in the hope of slightly more efficient implementation later.
2005-01-22 20:26:08 +00:00
igor%mir2.org
e8ace4f904 Removal of GETVAR SETVAR -> NAME SETNAME transformations during code generation
for functions with activation records  as NodeTransformer never introduce VAR
node if activation would be created.
2005-01-22 00:06:00 +00:00
igor%mir2.org
735bd73b49 1. Removal of passing of unused scope argument to ScriptRuntime.in|instanceOf
2. Compacting interpreter loop via reusing common parts for binary operations.
2005-01-21 18:03:41 +00:00
igor%mir2.org
21a82d04e9 Removal of passing unused scope argument to ScriptRuntime.in|instanceOf 2005-01-21 18:02:11 +00:00
igor%mir2.org
077cf2b7b6 Removal of invoker optimization as under JDK >= 1.4 it does not make things
visibly faster and under GCJ it makes thinks worse.
2005-01-20 19:45:27 +00:00
nboyd%atg.com
f5fec7715b adding xmoon 2005-01-20 18:30:29 +00:00
igor%mir2.org
bcf9f00787 Work on bug 264637: BaseFunction.functionName is removed as was suggested by Attila Szegedi <szegedia@freemail.hu> :
I assume "functionName" in BaseFunction could also undergo a similar treatment
of being replaced with an abstract getFunctionName() method, couldn't it? The
function name is either calculable from other data (FieldAndMethods, overloaded
case of NativeJavaMethod*, NativeJavaConstructor, InterpetedFunction) or fixed
(NativeRegExpCtor) in lots of subclasses.
2005-01-17 13:06:34 +00:00
igor%mir2.org
b5245d48f0 Fixing bug 277537: implementing isXMLName() 2005-01-14 14:13:56 +00:00
nboyd%atg.com
549953071c Add Lombardi 2005-01-14 13:34:29 +00:00
igor%mir2.org
f4c72a6056 Fixing bug 277935: now parser throws syntax error on assignments to descendants like x..y = 1 2005-01-12 14:21:06 +00:00
igor%mir2.org
535ee87833 JavaDoc fix: refer to WrapFactory, not already removed WrapHandler 2005-01-11 10:50:36 +00:00
igor%mir2.org
8c1a6b5877 Less bloated implementation of Kit.semicolonSplit 2005-01-10 01:26:36 +00:00
igor%mir2.org
1b2509d0f0 Fix from Dave Russo <d-russo@ti.com>:
While investigating how Rhino loads Java packages I came across what
appears to be a "typo" bug in NativeJavaTopPackage.java; a missing
semicolon in a string results in minor performance degradation for
script accessing the java.lang.reflect and java.lang.io packages.
2005-01-10 01:25:26 +00:00
igor%mir2.org
4e4d678dc2 Removal of deprecated features including WrapHandler 2004-12-31 01:27:00 +00:00
igor%mir2.org
9ddca6ca8b Deprecated classes that are kept only for compatiblity is moved to a separated source tree to simplify their removal if necessary from compilation scope 2004-12-31 00:02:46 +00:00
igor%mir2.org
98401f483b Fixing JavaDoc for @deprecated methods to make documentation to look less ugly 2004-12-31 00:00:44 +00:00
igor%mir2.org
3f3f612462 Context.toType is deprecated in favor of Context.jsToJava which throws EvaluatorException, not IllegalArgumentException.
In this way when native code implementing host objects calls Context.jsToJava the exception can be caught in JS and processed in in the same way as exceptions resulting from bad calls to LiveConnect Java objects.
2004-12-30 15:28:29 +00:00
igor%mir2.org
31dea64eae Added info on seal() 2004-12-14 14:52:40 +00:00
nboyd%atg.com
05a7072e79 Add HttpUnit and HtmlUnit 2004-12-10 01:52:18 +00:00
nboyd%atg.com
f670af373e remove stale link 2004-12-10 01:35:05 +00:00
nboyd%atg.com
37492ff65e Conform to style guide 2004-12-08 03:45:55 +00:00
igor%mir2.org
90e539e23a Patch from Daniel Gredler <danigredler@charter.net> to address bug 271401 :
JS prototypes for superclasses with ScriptableObject.defineClass
2004-12-07 00:10:31 +00:00
igor%mir2.org
14f3e3ead3 Link to changes.html 2004-12-01 00:07:07 +00:00
igor%mir2.org
70ece8dc32 Added release date information 2004-11-30 23:23:17 +00:00
nboyd%atg.com
024770db18 Version is 1.6R1 2004-11-29 14:30:28 +00:00
igor%mir2.org
a0c9f8d9ae *** empty log message *** 2004-11-29 13:07:27 +00:00
igor%mir2.org
a65d6fbe1c Fixing bug 271545: XML() should bahave exactly as XML("") 2004-11-24 23:16:38 +00:00
igor%mir2.org
ae04809e92 I added DebuggableScript to javadoc list and fixed javadoc warnings about its documentation comments. 2004-11-24 10:38:40 +00:00
igor%mir2.org
14d93f1038 I added debug API to get names of parameters or variables from DebuggableScript. 2004-11-24 10:03:14 +00:00
igor%mir2.org
3f2ace010a Removal of serialVersionUID which was not used correctly:
Rhino never claimed to support binary compatibility in the serialized objects and it is better to use the system generated ids always to catch errors about incompatible changes ASAP.
2004-11-22 13:23:03 +00:00
igor%mir2.org
417113cf5f Preparations for Rhino 1.6R1 release 2004-11-19 13:27:45 +00:00
igor%mir2.org
9e7f27e3bf *** empty log message *** 2004-11-19 13:01:16 +00:00
igor%mir2.org
e1e0639343 Renaming DebugGui into SwingGui to better reflect GUI nature 2004-11-19 10:13:04 +00:00
igor%mir2.org
60acf60bc5 Fixing nasty bug which prevented Open/Load to work in GUI among other things: the debugger should enter context using factory.call(...) and not Context.call(...) as the default factory is not the one that is used by GUI. 2004-11-19 10:12:21 +00:00
igor%mir2.org
4b3a0cd41a For VARARG methods wrap the result in the same way as for other methods: in this way VARARG method returning non-JS-type will get its results properly wrapped as LiveConnect object 2004-11-17 16:48:57 +00:00
igor%mir2.org
5ae3dc38e0 XML no longer implements Wrapper interface. Instead getXmlObject method
is added to access the implementation. In this way all functionality
of Java API in XmlObject is available to scripts if they need it.
2004-11-10 23:13:04 +00:00
igor%mir2.org
58aceb81d9 Implement specially NativeJavaObject.getDefaultValue for java.lang.Boolean to match the behavior of JS Boolean object. 2004-10-31 00:15:57 +00:00
igor%mir2.org
5e4041c8e1 Disabling invoker optimization by default: under jdk >= 1.4 and especially with 1.5 it does not bring noticeable benefits with typical usage while increasing loading time and memory consumption and introducing class loading issues. 2004-10-31 00:12:25 +00:00
igor%mir2.org
20d9c33ab6 Work for bug 261278: splitting STRICT_MODE into STRICT_VARS and STRICT_EVAL to allow for better compatibility in future if strictness would be exetended to other areas. 2004-10-28 14:13:05 +00:00
igor%mir2.org
7dc40416b6 Fixing bug 266418: making RegExp serializable 2004-10-28 11:31:38 +00:00
igor%mir2.org
993454366a Minimizing memory footprint by eliminating class fields:
1. IdScriptableObject.maxInstanceId is replaced by overridden getMaxInstanceId()

2. BaseFunction.argumentsProperty is replaced by storing when necessary explicit "arguments" property in ScriptableObject hashmap.

3. NativeFunction.(argNames|argCount|version) is replaced by code that reconstruct the necessary values from embedded in class file or InterpreterData (see bug 264637)
2004-10-25 15:44:24 +00:00
igor%mir2.org
5473ad4f8d Preparations for Rhino 1.6R1 RC3 2004-10-22 13:34:44 +00:00
igor%mir2.org
02b11dd425 Directory with external jars is renamed from jarlib to lib for consistency with other projects. 2004-10-22 12:36:36 +00:00
igor%mir2.org
0b2d78ab46 Fixing smalljar target implementation to include all the necessary classes and updating documentation about its usage. 2004-10-22 07:49:15 +00:00
igor%mir2.org
f6bd49caa2 Compatibility with Rhino+Continuation fork: in ScriptableObject.callMethod always use object as scope source even if the scope from function does not belong to its prototype chain. 2004-10-21 17:55:14 +00:00
igor%mir2.org
b7a9e90d94 Patch from Attila Szegedi <szegedia@freemail.hu> to adress bug 264637 :
Reducing InterpretedFunction footprint
2004-10-17 14:18:19 +00:00
igor%mir2.org
15518a5ed7 Fixing bug 263978: for compatibility with BSF usage IllegalArgumentException is not thrown on negative line numbers. 2004-10-16 00:37:05 +00:00
igor%mir2.org
83c22ac592 For compatibility wrap numbers always as Double instances. 2004-10-15 20:41:01 +00:00
igor%mir2.org
952dd72170 Fixing initialization bug: Continuation.initImplementation() can be called with null arg! 2004-10-15 20:38:21 +00:00
igor%mir2.org
343070e937 Compatibility with Rhino+Continuations fork: Continuation class is moved to continuations package. 2004-10-15 20:33:45 +00:00
igor%mir2.org
ab4159c06b Compatiblility with Rhno+Continuations fork: added Main.setSize(Dimension) 2004-10-15 20:06:22 +00:00
igor%mir2.org
326fb69d8a For compatibility with Rhino+Continuations fork Continuation is made public 2004-10-15 19:59:55 +00:00
igor%mir2.org
7a7538ee75 Compatibility change: allow to use Context.enter/exit when thread already has associated Context with factory. 2004-10-15 18:34:24 +00:00
igor%mir2.org
c12fda22c3 New public API Context.getDebuggableView to extract DebuggableScript implementation. 2004-10-15 18:27:38 +00:00
igor%mir2.org
011d77d870 Compatibility with Cocoon and its usage of Rhino debugger. 2004-10-14 09:15:19 +00:00
igor%mir2.org
0c713dd810 Added GeneratedClassLoader 2004-10-14 07:34:54 +00:00
igor%mir2.org
4edb63b66a Changing (XML|XMLList).(propertyIsEnumeratable|attribute|child) to confirm to the published ECMA 357 specification. 2004-10-14 07:34:13 +00:00
igor%mir2.org
907a84e3c8 I added ContextFactory.createClassLoader that is called from Context.createClassLoader to remove the need to subclass Context if a custom ClassLoader is required. 2004-10-14 07:31:00 +00:00
igor%mir2.org
fc7c9f0900 Fixing https://bugzilla.mozilla.org/show_bug.cgi?id=258844#c25 2004-10-12 13:58:52 +00:00
igor%mir2.org
30a166de64 Removal of autowrapping of XmlObject as XML as it prevents to use full API of XmlObject in JS. Use XML(jsWrapOfXmObject) to get XML corresponding to XmlObject. 2004-10-10 22:54:01 +00:00
igor%mir2.org
0b3a787456 Better information about continuation support 2004-10-10 22:51:10 +00:00
igor%mir2.org
83a78ee629 Work on bug 258844: Continuation by default 2004-10-09 22:07:04 +00:00
igor%mir2.org
f758947174 Implementing Wrapper interface in XML to unwrap to XmlObject and back 2004-10-08 21:04:41 +00:00
igor%mir2.org
a4fdafe750 Changing the license to NPL/GPL duo for consistency with the rest of the sources:
-------- Original Message --------
Subject: RE: www.mozilla.org/rhino: NPL license Messages_fr.properties?
Date: Fri, 8 Oct 2004 13:52:39 -0400
From: Aresteanu, Eugene <eugenea@avivasolutions.com>
To: 'Igor Bukanov' <igor@fastmail.fm>

	Hi Igor,
	Yes, I agree,
	Eugene Aresteanu


Do you agree to change the license as expressed in the license header
for the file:

mozilla/js/rhino/src/org/mozilla/javascript/resources/Messages_fr.properties

located at cvs.mozilla.org:/cvsroot to the following text:

#
# French JavaScript messages file.
#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is Aviva Inc. code, released March 5, 2004.
#
# The Initial Developer of the Original Code is Aviva Inc.
# Portions created by Aviva Inc. are Copyright (C) 2004 Aviva Inc.
# All Rights Reserved.
#
# Contributor(s):
# Eugene Aresteanu
#
# Alternatively, the contents of this file may be used under the
# terms of the GNU Public License (the "GPL"), in which case the
# provisions of the GPL are applicable instead of those above.
# If you wish to allow use of your version of this file only
# under the terms of the GPL and not to allow others to use your
# version of this file under the NPL, indicate your decision by
# deleting the provisions above and replace them with the notice
# and other provisions required by the GPL.  If you do not delete
# the provisions above, a recipient may use your version of this
# file under either the NPL or the GPL.


The change shall apply only to CVS HEAD version of the file.
2004-10-08 21:02:47 +00:00
igor%mir2.org
331238d910 License change to NPL 1.1/GPL duo for consistency with the rest of Rhino:
-------- Original Message --------
Subject: Re: www.mozilla.org/rhino: Changing the license for Delegator
Date: Fri, 08 Oct 2004 16:08:01 +0100
From: Matthias Radestock <matthias@sorted.org>
To: Igor Bukanov <igor@fastmail.fm>
References: <41668055.2050404@fastmail.fm> <4166830A.3010900@sorted.org> <4166AD80.6070806@fastmail.fm>

Igor Bukanov wrote:

> Thanks, I would like to change the license header from the current:
>
> /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset:
> 4 -*-
>  * The contents of this file are subject to the Mozilla Public License
>  * Version 1.1 (the "License"); you may not use this file except in
>  * compliance with the License. You may obtain a copy of the License at
>  * http://www.mozilla.org/MPL/
>  *
>  * Software distributed under the License is distributed on an "AS IS"
>  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
>  * License for the specific language governing rights and limitations
>  * under the License.
>  *
>  * The Original Code is Delegator.java, released Sep 27, 2000.
>  *
>  * The Initial Developer of the Original Code is Matthias Radestock.
>  * <matthias@sorted.org>. Portions created by Matthias Radestock are
>  * Copyright (C) 2000 Matthias Radestock. All Rights Reserved.
>  *
>  * Contributor(s):
>  *      Redfig Ltd (http://www.redfig.com)
>  *      LShift Ltd (http://www.lshift.net)
>  *
>  * Alternatively, the contents of this file may be used under the terms
>  * of the GNU Public License (the  "GPL License"), in which case the
>  * provisions of the GPL License are applicable instead of those
>  * above.  If you wish to allow use of your version of this file only
>  * under the terms of the GPL License and not to allow others to use
>  * your version of this file under the MPL, indicate your decision by
>  * deleting  the provisions above and replace  them with the notice and
>  * other provisions required by the GPL License.  If you do not delete
>  * the provisions above, a recipient may use your version of this file
>  * under either the MPL or the GPL License.
>  */
>
>
> to the following one:
>
>
> /* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset:
> 4 -*-
>  *
>  * The contents of this file are subject to the Netscape Public
>  * License Version 1.1 (the "License"); you may not use this file
>  * except in compliance with the License. You may obtain a copy of
>  * the License at http://www.mozilla.org/NPL/
>  *
>  * Software distributed under the License is distributed on an "AS
>  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
>  * implied. See the License for the specific language governing
>  * rights and limitations under the License.
>  *
>  * The Original Code is Delegator.java, released Sep 27, 2000.
>  *
>  * The Initial Developer of the Original Code is Matthias Radestock.
>  * <matthias@sorted.org>. Portions created by Matthias Radestock are
>  * Copyright (C) 2000 Matthias Radestock. All Rights Reserved.
>  *
>  * Contributor(s):
>  *
>  * Matthias Radestock, Redfig Ltd (http://www.redfig.com)
>  * Matthias Radestock, LShift Ltd (http://www.lshift.net)
>  *
>  * Alternatively, the contents of this file may be used under the
>  * terms of the GNU Public License (the "GPL"), in which case the
>  * provisions of the GPL are applicable instead of those above.
>  * If you wish to allow use of your version of this file only
>  * under the terms of the GPL and not to allow others to use your
>  * version of this file under the NPL, indicate your decision by
>  * deleting the provisions above and replace them with the notice
>  * and other provisions required by the GPL.  If you do not delete
>  * the provisions above, a recipient may use your version of this
>  * file under either the NPL or the GPL.
>  */
>
>
>
> Note that the new version replaces:
>
>  * Contributor(s):
>  *      Redfig Ltd (http://www.redfig.com)
>  *      LShift Ltd (http://www.lshift.net)
>
> by the following text:
>
>  * Contributor(s):
>  *
>  * Matthias Radestock, Redfig Ltd (http://www.redfig.com)
>  * Matthias Radestock, LShift Ltd (http://www.lshift.net)
>
> since Contributors section should contain at lease the name of the
> person contributing.
>
> If it is Ok, then I need your authorisation to perform such license
> change for the following files:
>
> mozilla/js/rhino/src/org/mozilla/javascript/Delegator.java
> mozilla/js/rhino/src/org/mozilla/javascript/.java
>
> located at the CVS repository at cvs.mozilla.org:/cvsroot
>
> The license change shall apply only to the CVS HEAD version of the files.
>

Igor,

that's all fine. Go ahead and make the changes.


Matthias.
2004-10-08 15:20:04 +00:00
igor%mir2.org
c99ef9d21c Yet another reference reorganization:
References now are represented by the pairs (ref, ref_target) where ref is Ref (former Reference) instance and ref_target is Scriptable to apply the reference for.

To return the pair from Reference creation function Context.scratchRefTarget is used to store the target part.

This change allowed to extend XMLName from Ref eliminating the need for XMLReference.
2004-10-03 23:55:04 +00:00
igor%mir2.org
438bd2230e Fixing bug 262687: patch from Kurt Huwig, bugzilla@huwig.de , to make the source compatible with JDK 1.5. 2004-10-03 11:23:07 +00:00
igor%mir2.org
6116e53140 Better error reporting for undefined access:
I changes just added toObject(Contetx cx, Object obj) to
toObjectOrNull(Contetx cx, Object obj) which returns null when obj is undefined
or null. It forces the caller to check to the return status but then much
better error report can be generated since the caller knows the operation that was called upon the undefined or null value.
2004-10-02 22:14:02 +00:00
igor%mir2.org
141e7d2365 Removal of scope argument of runtime functions to access|modify object members. The only reason for the argument was the need to call toObject to convert target object to Scriptable, but since now there is topCallScope available, that one can always be used instead. 2004-10-02 09:45:44 +00:00
igor%mir2.org
402ae75fef Change ScriptRuntime.get(Elem|Prop)FunctionAndThis to treat XML objects specially to follow ECMA 357, 11.2.2.1, CalMethod. This is done to minimize the overhead of method calls as otherwise someXmlObject.method() would first construct XMLList and apply () to it later.
To implement the function call redirection functionality XMLObject.getExtraMethodSource is added() to return an additional object to use as method source.
2004-10-01 22:07:12 +00:00
igor%mir2.org
2208dc8f95 RUnit Software AS as the single owner of copyrights for the following list of files present in Mozilla CVS as of 2004-10-01 15:10 UTC changes the license of the files to NPL/GPL. This is done for consistency with the rest of the source code in Rhino.
List of the affected files:

mozilla/js/rhino/src/org/mozilla/javascript/Callable.java
mozilla/js/rhino/src/org/mozilla/javascript/ClassCache.java
mozilla/js/rhino/src/org/mozilla/javascript/CompilerEnvirons.java
mozilla/js/rhino/src/org/mozilla/javascript/ContextAction.java
mozilla/js/rhino/src/org/mozilla/javascript/ContextFactory.java
mozilla/js/rhino/src/org/mozilla/javascript/Kit.java
mozilla/js/rhino/src/org/mozilla/javascript/Reference.java
mozilla/js/rhino/src/org/mozilla/javascript/SpecialRef.java
mozilla/js/rhino/toolsrc/org/mozilla/javascript/tools/debugger/GuiCallback.java
mozilla/js/rhino/toolsrc/org/mozilla/javascript/tools/debugger/test.js
mozilla/js/rhino/xmlimplsrc/org/mozilla/javascript/xmlimpl/XMLReference.java

Please contact igor@runitsoft.com if you have any questions about this.
2004-10-01 15:11:01 +00:00
igor%mir2.org
3aaa416d55 Fixing bug 262447: bad implementation of trying-hard-to-avoid-map-allocation idea in ScriptableObject.getPropertyIds 2004-10-01 14:59:45 +00:00
igor%mir2.org
59af2f367b More Reference clenups: Reference.delete now returns boolean to follow JS semantic clother and Reference implementation for __proto__|__parent__ is moved to a separated file SpecialRef. 2004-10-01 13:32:14 +00:00
igor%mir2.org
e048fa7512 Replacing calls to XMLLib to construct special name objects to represent qulified names, attributes and descendants by calls to object to get Reference based on name type. It allowed to implement proper namespace resolution in qulified name without forcing activation creation and simplified code.
In addition XMLName is no longer leaked to interpretation stack which would allow to remove unnecessary casts to XMLName in future.
2004-09-30 22:52:40 +00:00
igor%mir2.org
9f63611ce1 1. Reference cleanup:
Signatures in Reference are changed to include Context and reference-related methods in ScriptRuntime accept/return explicit Reference type instead of generic Object as code generation ensure proper type.

2. x..y use explicit reference instead of special descendants mark XMLName:

In this way less code is necessary to support x..y operations and support for .. in non-xml objects is possible.
2004-09-29 20:58:16 +00:00
igor%mir2.org
fa2d593b85 Transform name access to var access only if function does not require activation: previously the tests missed the check for .() that caused activation to be created. 2004-09-29 20:49:05 +00:00
igor%mir2.org
5421cfce46 Define var and arguments as PERMANENT properties as required by ECMA. 2004-09-29 19:04:47 +00:00
igor%mir2.org
dfa85f90dd 1. I fixed a recent regression that caused "arguments" array to be constructed before initialization of standard objects: Global.init() should be called in procesFiles as well.
2. I replaced a couple of anonymous classes implementing ContextAction by Use single IProxy class to shrink compiled code size.
2004-09-29 05:41:00 +00:00
igor%mir2.org
31962091d1 Store optimization level and language version in ShellContextFactory
so all Context instances created on other threads or from JavaAdapter
calls would have proper setup.
2004-09-28 21:58:01 +00:00
igor%mir2.org
1f3b183f24 1. Pass Context argument to XMLReference creation method to use it later
to check for strict mode.

2. Fix name lokup bug in XMLReference that caused in cases like
   foo.(@bar == 'something') to throw runtime exception if bar attribute
   does not exist in foo.
2004-09-28 21:56:33 +00:00
igor%mir2.org
835fe30439 I added methods to check for valid version and optimization levels that
Rhino embeddings can use to check the validity of data.
2004-09-28 21:52:19 +00:00
igor%mir2.org
e394b15872 NotAFuctionException is not deprecated for now 2004-09-28 07:20:27 +00:00
igor%mir2.org
8650308ed6 *** empty log message *** 2004-09-27 23:24:27 +00:00
igor%mir2.org
81746e1776 Use Context.emptyArgs, not null to denote null-arity method call for consistency. 2004-09-27 20:48:44 +00:00
igor%mir2.org
e75e7213d3 In ScriptableObject.callMethod use object itself as possible top scope source for to support of dynamic scoping. 2004-09-27 12:08:24 +00:00
igor%mir2.org
2490dd1652 Removal of OptLocalVariable: the class is replaced by varRegisters array in Codegen and numberVarFlags in OptFunctionNode. The later is initilized only when optimizer deduces that there are variables used in pure number context. 2004-09-27 12:04:52 +00:00
igor%mir2.org
9ca481e40b Replace explicit parse tree walk to associate OptLocalVariable with tree nodes by lazy initialization of the association on first OptLocalVariable access. It shrinks code while making optimization to run slightly faster. 2004-09-27 09:33:50 +00:00
igor%mir2.org
1284815da8 Updating links to xmlbeans home and refer to xbean.jar, not xmlbeans.jar in the documentation. 2004-09-26 22:35:29 +00:00
igor%mir2.org
f2e4f3318c I added ScriptRuntime.setObjectProtoAndParent to initialize prototype and parent of objects created outside the standard constructor calls. It allowed to replace scattered setPrototype/setParentScope and shrink code size. 2004-09-26 14:36:01 +00:00
igor%mir2.org
9cd57f1550 Avoid duplicated getMessage* code in ScriptRuntime and Context: now all the necessary code is moved to ScriptRuntime and the rest of code is updated to call ScriptRuntime 2004-09-25 18:11:44 +00:00
igor%mir2.org
924295d56c Better compatibility of continuation implementation with the version from cocoondev.org: use current top call scope as scope for Continuation, not library scope. 2004-09-25 10:34:05 +00:00
igor%mir2.org
33b74641f5 For compatibility allow jsFunction_* to return non-scriptable type. Not to
perform type conversion checks for methods that do return proper JS type the
type check is done only once in the constructor and if necessary a flag is set
to call WrapFaactory.wrap on method return.
2004-09-25 09:24:43 +00:00
igor%mir2.org
744bc2b079 Allow to specify explicit ContextFactory with the debugger. 2004-09-24 20:35:42 +00:00
igor%mir2.org
9c900143cf Make sure that all functionality that Main.(main|mainEmbedded) use to initialize debug GUI is available for applications through public methods. 2004-09-24 16:46:50 +00:00
igor%mir2.org
243ce99e7c More compatibility changes: added Main.isVisible 2004-09-24 16:38:09 +00:00
igor%mir2.org
b8bfe43a65 Move getObjectIndex/setObjectIndex that take double as index from optimizer/OptRuntime to ScriptRuntime and use it in the Interpreter to avoid code duplication. 2004-09-24 16:27:27 +00:00
igor%mir2.org
3f3a80499c Revert wrong commit of build.properties with temporary changes 2004-09-24 16:19:26 +00:00
igor%mir2.org
7523c5c791 Added few methods to redirect calls from main to DebugGui for compatibility. 2004-09-24 16:14:02 +00:00
igor%mir2.org
4a1d88a604 Use single function, Kit.xDigitToInt, to convert character representing hex digit to number. The function replaces duplicated code in TokenStream/NativeGlobal/NativeRegExp. 2004-09-24 13:14:01 +00:00
igor%mir2.org
511eb6c0fc Code reorganisation to shrink the size of JVM class files. 2004-09-24 13:11:02 +00:00
igor%mir2.org
49a53cd5e9 Resolving bug 261278: strict mode implementation 2004-09-23 21:34:22 +00:00
igor%mir2.org
81fcf9bcdf Preparations for RC2 for 1.6R1 2004-09-22 10:59:39 +00:00
igor%mir2.org
ea6f7ae6b8 Added some information about experimental support for continuations 2004-09-22 10:43:52 +00:00
igor%mir2.org
21f0e29bbd 1. Extend index and offset jump limits to 2^16 - 1 from 2^15 - 1 using unsigned indexes.
2. Use linked list of read-only REPogState to implement state stack instead of array of struct. It fixes bug 258417 while making creation of back track stack data much cheaper since there is no need to copy read-only structures.
2004-09-22 09:48:17 +00:00
igor%mir2.org
bfc17d4124 In NativeRegExp.executeREBytecode I moved code to manipulate regexp program
stack to separated pushProgStack|popProgStack methods to localize changes to
for the following patch to use linked list for state stack.
2004-09-21 18:38:46 +00:00
igor%mir2.org
86848a99b8 I merged REMatchState into REGlobalData and replaced all REMatchState usages as function return type by boolean. It simplified matching code while reducing code bloat. 2004-09-21 15:00:43 +00:00
igor%mir2.org
cc4eeda146 1. Use direct reference to backTraceStack top to save/restore backTraceStack reference when matching REOP_ASSERT/REOP_ASSERT_NOT
2. Coalesce duplicated code in NativeRegExp.executeREBytecode
2004-09-20 22:44:51 +00:00
igor%mir2.org
ed81e19108 Resolving bug 258844: implementation of continuation support for Rhino interpret
er inspired by Christopher Oliver work for custom Rhino version for cocoon.apach
e.org.
2004-09-16 19:04:34 +00:00
igor%mir2.org
c4916822f7 Resolving bug 258844: implementation of continuation support for Rhino interpreter inspired by Christopher Oliver work for custom Rhino version for cocoon.apache.org. 2004-09-16 18:27:42 +00:00
igor%mir2.org
12828edc5e Replacing back track array in RegExp matching code by linked list to address bug 258419. 2004-09-16 17:30:01 +00:00
igor%mir2.org
a30abea90c 1. Using explicit ShellContextFactory in shell to avoid interference from changes in global ContextFactory.
2. Initializing global scope before the first execution to allow to customize ShellContextFactory before calls to Context.initStandardObjects()
2004-09-15 16:00:30 +00:00
igor%mir2.org
91f7a07a68 1. Call contextData.pushFrame(this) from StackFrame.onEnter and not from StackFrame.constructor to allow multiple invocations of enter/exit per single debug frame. The continuation support will use it.
2. Expand tabs
2004-09-15 14:59:36 +00:00
igor%mir2.org
b92c21f853 1. Ignoring recursive invocation of Dim.interrupted on event thread: when Gui
processes breakpoint hit and another breakpoint is met during event processing,
then on Linux recursive invocations of EventQueue.getNextEvent()/dispatchEvent
lead to eventual GUI deadlock. It is easy to observe when the break on function
enter is enabled and a JS function is called that is attached to an action
handler of some button. With recursive bahaviour repeated clicks lead to deeper
and deeper invocation of EventQueue.getNextEvent() and GUI deadlock on Linux.

So to improve debugger stubility I modify Dim.interrupted to ignore calls from
event thread when another invocation of Dim.interrupted already waits for GUI
result.

2. To decrease class and jar bloat I merges various implementations of Runnable
and and other interfaces to single class with switch dispatch. It saved about
6K from js.jar.
2004-09-15 14:45:10 +00:00
igor%mir2.org
bef182034b 1. Using UniqueTag.DOUBLE_MARK in interpreter instaed of Object instance to mark double values on stack for better debug printouts.
2. In parse tree use Node instances, not Node.Target to denote target nodes as later just leads to code bloat without safty benefits.
2004-09-15 13:51:19 +00:00
igor%mir2.org
4f61cba96e Added UniqueTag.DOUBLE_MARK for better debug printouts in interpreter and potential support for serialization of Interpreter.CallFrame. 2004-09-15 13:42:26 +00:00
igor%mir2.org
c72dbebee7 1. Marking NativeCall.parentActivationCall transient so serialization would not see it.
2. Removal of never used NativeCall.thisObj field and code to initialize it.

3. Renaming NativeCall.funObj to NativeCall.function for better readability.
2004-09-14 14:59:21 +00:00
igor%mir2.org
5ebef36b9a 1. Allow to monitor from application top script or function calls: now they go through ContextFactory.doTopCall which can be overridden.
2. Context.observeInstructionCount now calls ContxtFactory.observeInstructionCount so it can overridden without extra Context class.
2004-09-13 13:19:17 +00:00
igor%mir2.org
4b0e5313bd My take on the patch from Attila Szegedi <szegedia@freemail.hu> to resolve 258959. 2004-09-12 16:41:04 +00:00
igor%mir2.org
9d46a01a21 Patch from Attila Szegedi <szegedia@freemail.hu> to fix bug 258958 2004-09-12 16:39:39 +00:00
igor%mir2.org
7c625d6b56 Added ContextFactory.hasExplicitGlobal to verify if ContextFactory.initGlobal was already called. 2004-09-12 16:37:59 +00:00
igor%mir2.org
66fd0127ec Few changes from continuation patch in bug 258844 that are useful on its own:
1. Fix to pass to debugger wrapped frame.resultDbl if frame.result is DBL_MARK
2. Change Interpreter.interpret to return the properly wrapped result instead of the final frame.
3. Use Object for throwable variable in Interpreter.interpret to avoid multiple casts to Throwable
2004-09-12 13:05:34 +00:00
igor%mir2.org
006a1dcfc1 Fixing recent bad typo in exception handler search that caused to ignore finally handlers and check only catch blocks with finally-only exceptions. 2004-09-12 00:36:46 +00:00
igor%mir2.org
ea82bb7ab5 Consistently use ScriptRuntime.(wrapNumber|wrapBoolean) to wrap Java double and boolean values to the corresponding JS primitive types. 2004-09-10 19:54:43 +00:00
igor%mir2.org
985134c0ed 1. Replacing IdScriptableObject.wrap_* methods by their ScriptRuntime.wrap* counterparts since the wrap methods are useful not only for subclasses of IdScriptableObject.
2. Reorganizing execIdCall in few classes inherited from IdScriptableObject to shrink code size.
2004-09-10 18:02:06 +00:00
igor%mir2.org
5eff6a3a6f Removal of unnecessary cast to (String) during getter/setter enumeration. 2004-09-10 17:56:13 +00:00
igor%mir2.org
cae5f15434 Removal of package-private setter methods in FunctionNode in favor of package-private (not private) fields: that just was just adding unnecessary code bloat. 2004-09-10 17:54:13 +00:00
igor%mir2.org
a70c59fa3a More work for bug 244492: I deprecated ClassDefinitionException modified
ScriptableObject to use EvaluatorException instead.

For greater compatibility I also changed ClassDefinitionException to extend
from RuntimeException, not Exception so compilers would not complain about
"catch (ClassDefinitionException ex)" when no ClassDefinitionException is present in the called code.
2004-09-10 17:50:05 +00:00
igor%mir2.org
0aa318e581 XMLLib.escapeXMLAttribute is required to add " arround the text to simplify code generation. 2004-09-10 17:40:59 +00:00
igor%mir2.org
ef2adbe0e4 1. Fixing a race in implementation of date.prototype.setYear where NativeDate.date was updated several times with temporary values.
2. Reorganizing NativeDate.execIdCall to shrink code size
2004-09-10 17:36:49 +00:00
igor%mir2.org
7ddb76cbaf RegExpProxy.(search|find|match) was replaced by the single action taking additional actionType argument: this is how the methods were implemented in RegExpImpl in any case and talking to implementation directly saved code. 2004-09-10 07:51:16 +00:00
igor%mir2.org
ef60132dfa Inlining back code that were moved recently to do_call/do_new: if continuation support materializes, it would be much easier to transfer control to appropriate part of interpretation loop from the inlined code then to pass the necessary information from do_call. 2004-09-10 07:48:00 +00:00
igor%mir2.org
3047c478e0 1. Interpreter.interpret no longer tracks "with" statement nesting and instead use local register to save/restore scope during exception handling. It allowed to simplify exception handling and move it back to Interpreter.interpret to avoid issues with hypothetical stack overflow exceptions during exception catching.
2. local registers are cleared with null after use to allow to GC no longer used objects.
2004-09-09 17:40:48 +00:00
igor%mir2.org
db8822eccc Removal of "throws JavaSriptException" declaration:
JavaSriptException now inherits from RhinoException which inherits from RuntimeException and as such it does not necessary to declare it.

Moreover, it is wrong to use it for the documentation purpose since a  script can also throw EcmaError and WrappedException and a proper documentation would require to document those exceptions as well. But since almost all Rhino functions can potentially execute script code it means that wast majority of functions would bear the declarations, not only code overriding or calling explicitly Function.call/construct. And then the throw declarations would bring no information if it always would be "throws RhinoException". Thus it is better not to litter sources with the declarations at all.
2004-09-08 12:29:59 +00:00
igor%mir2.org
30e63c4179 Fixing bug 258144: my take on patch patch from Andrew Madigan <andymadigan@yahoo.com> to add class compiler option controlling which class will be used for main method implementation. 2004-09-07 19:11:39 +00:00
igor%mir2.org
d29f6cb477 Inline small functions used for code generation to produce intepreter or JVM bytecode for particular parser tree node: they just add to jar file size without readability benefits. 2004-09-07 09:08:31 +00:00
igor%mir2.org
b1162d3958 Refactoring of catch code generation to address bug 258183 and bug 258207. 2004-09-06 20:05:55 +00:00
igor%mir2.org
faab99c5dd Print exception trace inside Kit.codeBug() to have it even if the execption is shadowed by another one 2004-09-06 19:08:11 +00:00
igor%mir2.org
8f793c397e Resolving bug 255891: new approach to dynamic scoping 2004-09-01 14:17:00 +00:00
igor%mir2.org
df590d4933 Fixing bug 257425: Context.toObject now works even without Context.iniStandardLibrary 2004-08-30 14:57:25 +00:00
igor%mir2.org
614804384d Fixing bug 257423: the code generation was not updated to use ScriptRuntime.getObjedctProp instead of OptRuntime.thisGet. 2004-08-30 14:48:23 +00:00
igor%mir2.org
ef89c5d451 Renaming Interpreter.State to Interpreter.CallFrame to better reflect class semantics 2004-08-28 19:19:30 +00:00
igor%mir2.org
1e75534222 Changes to make Interpreter to recover from exceptions during execution of ScriptRuntime.getCatchObject() and during initState and do not leave runtime in inconsitent o even corrupt state. 2004-08-28 17:29:50 +00:00
igor%mir2.org
8eb18ba2ca Implementing 257128: tail call optimization 2004-08-28 00:42:38 +00:00
igor%mir2.org
1c4a403de2 Removal of ScriptRuntime.getThis() : it was used by nested functions or
functions declared inside with statements to ensure that their thisObj
is not with or call scope as required by ECMA-262.

But due the changes to support E4X extensions such situation can only happen
when function is accessed as expression like in

var f = function() { }
...

f()

and typically it is exactly nested the functions that are accessed in this way.
So the patch adds optimized code that always check for proper thisObj to
ScriptRuntime.getValueFunctionAndThis and removes getThis and corresponding parsing/code generation code.

In this way when nested functions are accessed  as name or property no checks are done for them and Rhino code slightly shrinks.
2004-08-27 11:37:17 +00:00
igor%mir2.org
397ed39869 Link to E4X example 2004-08-25 19:26:56 +00:00
igor%mir2.org
d3a2da86ba Fixing bug 256865: changing ByteCode constants to int from byte so switches over them would not crash widely installed versions of GCJ like GCJ 3.3.*. 2004-08-25 17:22:02 +00:00
igor%mir2.org
95799991f8 Interpreter optimization: use state.resultDbl to store double result accross calls of interpreted functions to avoid creation of Double instance. 2004-08-25 15:19:22 +00:00
igor%mir2.org
835abeb4b1 Optimizing name access: since top scope can not be NativeWith or NativeCall, it is possible to avoid thisObj checks for name-as-function access and "with" statement and XML object checks. 2004-08-25 09:50:32 +00:00
igor%mir2.org
00faaf6ab8 Fixing bug 256691: forcing XML.hasSimpleContent() to return true for atributes and text. 2004-08-24 11:38:59 +00:00
igor%mir2.org
eea0a0a79d More parser/scanner changes under the name of bug 256575 :
Do not scan regexp literals in TokenStream.getToken(). Instead parser will call explicit TokenStream.readRegExp() after it gets / or /= as primary expression. In this way there is no need to use any explicit regexp flags which rather error prone.
2004-08-24 11:23:13 +00:00