mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 00:01:50 +00:00
5e9bc346cb
Mon, 02 Jul 2001 12:58:44 +0200 From: Igor Bukanov <igor@icesoft.no> Organization: Wind River To: Norris Boyd <nboyd@atg.com> Hi, Norris! It turned out that in our browser implementation we need to be able to abort too-long-running scripts. I implemented that for interpreter mode via instruction counter callback. This callback is called at branch points after instruction counter reach certain threshold as you suggested once in mozilla-jseng mail list. The attached patch adds to Context.java: public int getInstructionObserverThreshold() { return instructionThreshold; } public void setInstructionObserverThreshold(int threshold) { instructionThreshold = threshold; } protected void observeInstructionCount(int instructionCount) {} ... int instructionCount; int instructionThreshold; where observeInstructionCount is a callback that should be overwritten in a custom Context to observe execution. Then as long as instructionThreshold is not 0 modifications to Interpreter.java increase instructionCount at branches/function calls/catch blocks and call cx.observeInstructionCount when it reaches instructionThreshold. I also replaces 3 catch statements in Interpreter.interpret for EcmaError, JavaScriptException and RuntimeException by single one to reduce code duplication. The patch lacks documentation in Context.java but I would add that later if the patch is ok. Regards, Igor ========================== Subject: Re: Working for Rhino Date: Tue, 3 Jul 2001 10:41:42 +0200 From: felix.meschberger@day.com To: Norris Boyd <nboyd@atg.com> Hi Norris, Well, I couldn't wait ;-) Here are my diffs : LazilyLoadedCtor: Make class and constructor public for use on my host objects NodeTransformer : Replace checks for "arguments" by call to checkActivationNeeded() in Context Context: Add the name list proposed as a hashtable with adder/checker/remover methods Hope this helps. Regards Felix |
||
---|---|---|
.. | ||
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>