Commit Graph

262 Commits

Author SHA1 Message Date
fur%netscape.com
36b290a006 The files in this directory are all obsolete. JavaScript development
has been moved to the js/src directory.  Sample code has been moved to
js/samples.
1998-10-16 22:18:00 +00:00
rogerl%netscape.com
bfc8111f7b Oops, checked in a call to decompileFunctionBody which was for debugging
purposes only.
1998-09-25 18:10:27 +00:00
rogerl%netscape.com
4f81e38cf9 Added the #define for turning on the default messages. Not sure if this is
the right place for it, but I wanted to get it in before the merge-a-thon.
1998-09-23 20:41:13 +00:00
rogerl%netscape.com
7c1d5988f6 Changes for error messages - arguments are now jschar. 1998-09-23 20:38:23 +00:00
rogerl%netscape.com
0896895d70 Bug #104766, decompileFunctionBody needed to set scope in printer before
calling decompileCode.
1998-09-23 20:37:58 +00:00
rogerl%netscape.com
2cd63753bb Changes for error messages - arguments are now jschar.
Bug #104766, decompileFunctionBody needed to set scope in printer before
calling decompileCode.
1998-09-23 20:36:18 +00:00
bjorn%netscape.com
d376dd5861 Now using a lock in prarena instead of compare-and-swap. 1998-09-23 20:19:28 +00:00
bjorn%netscape.com
e98900791f Removed a redundant assignment, f->susp=-1. 1998-09-23 19:51:26 +00:00
fur%netscape.com
a3c65849c2 When finalizing the prototype objects, don't try to access the JNIEnv, since that can cause the JVM to be unnecessarily loaded 1998-09-23 18:36:38 +00:00
bjorn%netscape.com
92dd15691d Patched the name JS_USE_ONLY_NSPR_LOCKS. 1998-09-22 21:45:13 +00:00
matt%netscape.com
34b612cd1e Adding mak file for HP-UXB.10.20 1998-09-22 02:13:56 +00:00
norris%netscape.com
a8d7c15011 Fix bug 323696 "js12: unimplemented bytecode error in switch test"
Rename js_ResetCodeGenerator to js_FinishCodeGenerator to indicate that
js_InitCodeGenerator must be called after finish before it can be reused.
1998-09-21 17:17:26 +00:00
brendan%netscape.com
13c7230b4c Fix last checkin. 1998-09-20 02:58:41 +00:00
norris%netscape.com
b7d8575ca7 Remove ECMA v2 versioning since v2 is far from settled and we don't know which JavaScript version will implement it. 1998-09-18 20:40:35 +00:00
norris%netscape.com
9fb6ef3b59 Update version number and release date. Use the date of our next customer drop. 1998-09-18 20:35:09 +00:00
rogerl%netscape.com
9a27ef1b9d Bug #315139 (aka 104859). Some discrepancies between JS1.2 behaviour for
matching at empty pattern at end of string. I'm not real confident of
this fix since it removes code that seems to explicitly address the issue,
but it does fix the bug.
1998-09-18 20:22:59 +00:00
rogerl%netscape.com
9f60232a23 Bug #316839. Re-allocation of space for flat1/flat coalesce wasn't using
sizeof(jschar).
1998-09-18 20:20:53 +00:00
jband%netscape.com
238f96eccb (not part of client build) added call/return hooks to js_Invoke and js_Execute. Also added additional accessors to jsdbgapi for JSStackFrame contents. This will better facilitate tracking exceptions as they propagate up the stack, allow for faster stepping schemes, and support less intrusive tracing/profiling schemes. 1998-09-18 00:57:11 +00:00
mccabe%netscape.com
8257eac38e Propagate mcafee compile-warning fixes from js/src. 1998-09-17 23:48:20 +00:00
jband%netscape.com
2a81c18a1a (not EVEN part of mozilla) fix conditional compile code to allow use of debugger without liveconnect 1998-09-16 00:56:47 +00:00
ccooper%netscape.com
2cef6d00a9 Added NPL to LiveConnect java classes.
New file 'JSWrappedException' is used for passing exceptions between Java
and JavaScript.
1998-09-15 19:53:48 +00:00
rogerl%netscape.com
46f5ffb26f Fixed bug #316293; when break was very first statement in a loop it wasn't
getting patched and so looped for ever.
1998-09-14 22:33:19 +00:00
norris%netscape.com
19a2523b04 Fix 179417 "crash in with tests with with object"
The problem was that when "w=With()" is executed, the new object "w" is created
such that it shares a scope with Object.prototype. When GC runs and
Object.prototype and "w" are both collected, the test in js_DropObjectMap
currently looks like

     if (MAP_IS_NATIVE(map) && ((JSScope *)map)->object == obj)
        ((JSScope *)map)->object = NULL;

The problem is that MAP_IS_NATIVE is false because the object ops are special
for the With object. Thus map->object is left nonnull and when "w" is collected,
it tries to drop its scope, which causes map->object to be referenced, causing
the null dereference.

Update MAP_IS_NATIVE to include With objects as well.
1998-09-14 22:01:01 +00:00
jband%netscape.com
2fb80359da added CRT_CALL decoration to callback typedefs in jsprvtd.h (it had only been used in jspubtd.h) and moved the last remaining callback typedef (JSTrapHandler) out of jsdbgapi.h and into jsprvtd.h along with the others 1998-09-11 19:58:15 +00:00
brendan%netscape.com
f1dc01ae5b - Fix js_AllocTryNotes to track how much space has been allocated from tempPool
for trynotes in the current code generator, and grow that space as needed.
- Avoid dividing by a multiple of 3 (JSTryNote is 3 ptrdiff_t's) via (char *)
  arithmetic.
1998-09-11 09:25:15 +00:00
jband%netscape.com
98c507c676 (not part of mozilla build) added source hook to jsdbgapi so that debugger can get clean access to source from jsscan when the JSFILE hack is used 1998-09-11 04:04:26 +00:00
brendan%netscape.com
7e8d72f13f Don't CHECK_BRANCH(len) in GOSUB (len must be > 0) or at all in RETSUB. 1998-09-10 20:46:37 +00:00
brendan%netscape.com
47030e2d0d - GOSUB pushes the next pc after it, not its own pc (tradition!) and RETSUB
sets pc to the unbiased result of the pop.
- Use #if JS_HAS_EXCEPTIONS in the decompiler, fiddle similar cosmetic stuff.
1998-09-10 20:42:26 +00:00
norris%netscape.com
c7e0b4fd28 Fix 312954 "monkey: on HPUX, special case failure when dividing by -0" 1998-09-10 20:27:16 +00:00
brendan%netscape.com
0b411ad632 - Added commentary for TOK_DEFSHARP nodes explaining pn_kid's purpose.
- Don't over-commend nearby #endifs at the expense of legibility.
1998-09-10 20:13:06 +00:00
brendan%netscape.com
123e68fe7a - Use JSBool for MatchChar's return type and values.
- Spacing nits.
1998-09-10 19:58:15 +00:00
brendan%netscape.com
a8df12702b Remove excessive JS_FRIEND_API uses; clean up nits. 1998-09-10 19:18:23 +00:00
shaver%netscape.com
92bca3301d clean up old assertions and remove vestigial tryLimit 1998-09-10 17:45:37 +00:00
shaver%netscape.com
23b7327ace fix memory leak 1998-09-10 14:56:58 +00:00
brendan%netscape.com
fa72057162 Need to prevent GC activation during compile on the compiling context, not
just when evaluating old-style switch case expressions.
1998-09-10 07:09:44 +00:00
brendan%netscape.com
c3830fe4eb Remove javaData, left over from original LiveConnect. 1998-09-09 19:20:07 +00:00
brendan%netscape.com
9b12b81ef6 Now that SRC_COMMA has been renamed to reflect its generality (SRC_PCDELTA),
and more important, to save a byte of useless note offset, use SRC_CONTINUE
instead of SRC_PCDELTA to annotate JSOP_ENDINIT when there's an extra comma
at the end of an array literal (e.g. [1,2,,]).
1998-09-09 19:18:01 +00:00
brendan%netscape.com
cacf641709 - Might as well use tempPool to arena-allocate collected_args as well as the
tokenstream in Function, to avoid calling malloc at all.
- But do check for malloc failure under PR_ARENA_ALLOCATE (the old call to
  JS_malloc was unchecked).
1998-09-09 10:02:12 +00:00
brendan%netscape.com
0b351f4c23 Fix tempPool bloat bugs in Function by mark/release around NewTokenStream. 1998-09-09 09:50:40 +00:00
brendan%netscape.com
1cf65e15ec - Don't cast malloc's return value, it's void *.
- Don't double-report a scanner error such as illegal character in
  Function("a@b", "return a*b")
- Do report a "malformed formal parameter" error in
  Function("a,b,", "return a*b")
- Fiddle comments to more precisely rule out the above bugs.
1998-09-09 09:27:56 +00:00
brendan%netscape.com
89c7bdee13 JSMSG_NO_FORMAL duplicated DUPLICATE_FORMAL, now is reborn as BAD_FORMAL. 1998-09-09 09:04:35 +00:00
brendan%netscape.com
a95987dd0b Improve TABLESWITCH comment precision and add XXX about JSVERSION_IS_ECMAv2. 1998-09-09 06:35:30 +00:00
brendan%netscape.com
0ef0c706ae Renamed SRC_COMMA to SRC_PCDELTA and fixed related comments. 1998-09-09 02:16:19 +00:00
brendan%netscape.com
6327319e0d Fix busted version check in JSOP_TABLESWITCH. 1998-09-09 02:01:52 +00:00
shaver%netscape.com
2e4590ec47 ToBoolean behaviour for all non-ECMA versions, not just 1.2 1998-09-08 20:59:19 +00:00
brendan%netscape.com
89d641ff37 Don't emit two SRC_HIDDENs in a row. 1998-09-08 18:26:37 +00:00
norris%netscape.com
c6b299a84d Fix bug: space was not allocated for terminal '\0' in string.
Spell "JavaScript" correctly.
1998-09-08 18:18:52 +00:00
brendan%netscape.com
aeb3f1e6b9 Oops! How did that ever work on my Win32 build? 1998-09-08 05:49:12 +00:00
brendan%netscape.com
347aaac8d3 js.c jsemit.c jsemit.h jsgc.c jsinterp.c jsopcode.c jsopcode.def
- Switch improvements:
  - JSOP_CONDSWITCH is a 1 byte nop, not variable length with the same kind
    of immediate operand as JSOP_LOOKUPSWITCH (which is useless except for
    decompilation).  New scheme uses SRC_COMMA notes on each JSOP_CASE opcode,
    usually 2 bytes per note, and a typically-1-byte 2nd offset on SRC_SWITCH:
      1 + 2 * ncases
    vs. the previous JSOP_LOOKUPSWITCH immediate, which consumed:
      4 * ncases
    bytes after the switch opcode just for decompilation.
  - SRC_SWITCH has two offsets, first to end of switch as before, the second
    to first case if JSOP_CONDSWITCH, for decompilation.
  - Optimize switches with all-constant cases using JSOP_TABLESWITH, or if
    that can't be used, JSOP_LOOKUPSWITCH, before falling back on ECMAv2's
    JSOP_CONDSWITCH.
  - Use cx->gcDisabled when evaluating case exprs at compile time for old,
    pre-ECMAv2 switches, to prevent branch-callback-based GC invocations
    from ripping apart the unrooted temporary script for each case expr.
  - Fixed up stale SRC_SWITCH comments in jsemit.h.

jsemit.c jsemit.h
  - TREE_CONTEXT_INIT to match ATOM_LIST_INIT, not English word order.
  - Reorganized JSCodeGenerator to sort of match argument order to
    js_InitCodeGenerator.
  - Got rid of confusing CG_RESET* macros and used memset(cg, 0, sizeof *cg)
    and non-zero-default init in js_InitCodeGenerator.  js_ResetCodeGenerator
    just releases the code and temp arena pools and leaves the cg in a state
    where it must be re-initialized (as before, but more obvious).
  - In the same spirit, don't do partial "resets" or src and trynotes in their
    js_FinishTaking*Notes functions -- those are friends of jsscript.c and are
    not general, idempotent functions.

jsapi.c jsapi.h jsarray.c jsatom.c jsatom.h jscntxt.c jsemit.c jsmsg.def
jsnum.c jsobj.c jsopcode.c jsregexp.c jsscan.c jsstr.c jsxdrapi.
  - Use PR_snprintf rather than sprintf always, so we don't have to worry
    about systems with 64-bit longs that overflow 12-byte buffers and open
    Morris-Worm-type security holes.
  - Trim extra spaces, fix hanging indentation, and similar anal retention.
  - Renamed JSMSG_BAD_PROTO_SORT to JSMSG_BAD_SORT_ARG cuz that's what it
    is complaining about.
  - SRC_CATCHGUARD still lived in comments, but it's SRC_CATCH in code.

jscntxt.c jscntxt.h jsinterp.c
  - Packed nearby JSPackedBools and added a new one: gcDisabled, for use by
    jsemit.c's pre-ECMAv2 switch case expr eval.
  - Rip out old js_InterpreterHooks stuff from original liveconnect (moja).
  - Remove javaData and savedErrors from JSContext.  Leaving it to fur or
    shaver to remove javaData from jsscript.h.
1998-09-08 05:39:51 +00:00
brendan%netscape.com
9d404730f1 Remove '(balance' comments, fix hanging indents, other nits. 1998-09-06 19:23:06 +00:00