mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 00:01:50 +00:00
d589083a1e
----- The patch changes NativeCall to use IdScriptable. This is done mostly for uniformity with other Native* classes plus it would allow to call NativeCall.init directly and make NativeCall package private. ----- The patch changes NativeScript to use id-based properties. Due to inheritance from NativeFunction, id support requires to take into account the fact that there are instance ids available from BaseFunction. This is the reason to use "int prototypeIdShift" instead of "boolean prototypeFlag" so it can store instance id offset. The patch updates ScriptRuntime.callOrNewSpecial to check against IdFunction and not FunctionObject for the Script exec method where it also add finally clause to make sure that Context.exit would always be called after Context.enter in the evalScript method. ----- After converting NativeScript and NativeFunction to use IdScriptable, they get scope argument directly as a parameter of execMethod call, so cx.ctorScope is not used any more. The patch removes code to set/unset cx.ctorScope. ----- [This patch depends on conversion of NativeScript and NativeCall to use IdScriptable and the patch to remove access of ctorScope from FunctionObject] The patch changes Context.initStandardObjects to call NativeCall.init and NativeScript.init directly plus it unrolls the lazily initialization loop. Due to rather poor support of an array initialization in Java byte code, it actually decreases code size while eliminating are creation of array object. The patch also removes ctorScope field as unused. ----- The patch makes sure that ids used by NativeGlobal are visible only in the object instance that initializes global scope and removes some junk white space at line ends. ----- To use the idswitch tool to generate map for strings that can not be part of Id_ Java identifier like $*, I added code to the tool to look for "// #string=...#" in the id definition line. The attached README file also contains some documentation about the tool and should go to idswitch directory. The patch was made from toolsrc/org/mozilla/javascript/tools via: cvs diff -u > idswitch_patch |
||
---|---|---|
.. | ||
docs | ||
examples | ||
macbuild | ||
src | ||
toolsrc | ||
apiClasses.properties | ||
build-date | ||
build.xml | ||
Makefile | ||
README.html |
<html> <!-- - 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 Rhino code, released - May 6, 1999. - - The Initial Developer of the Original Code is Netscape - Communications Corporation. Portions created by Netscape are - Copyright (C) 1998-1999 Netscape Communications Corporation. All - Rights Reserved. - - Contributor(s): - Norris Boyd - - 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. --> <body> <h1> <span CLASS=LXRSHORTDESC> Rhino: JavaScript in Java<p> </span> </h1> <span CLASS=LXRLONGDESC> Rhino is an implementation of JavaScript in Java. Documentation can be found <a href="http://www.mozilla.org/js/rhino/rhino.html">here</a>. </span> </body> </html>