4934 Commits

Author SHA1 Message Date
sudu%netscape.com
e1bee63656 New xpcom liveconnect apis
git-svn-id: svn://10.0.0.236/trunk@10280 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-17 18:13:55 +00:00
jband%netscape.com
877577c907 (not part of client build) moving to mozilla from jsdse_branch of ns/js/jsd/corba. This code constitutes the server side of the Corba/iiop based remote JavaScript debugging system. There is not currently a build system for the C++ code in place
git-svn-id: svn://10.0.0.236/trunk@10206 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 22:24:00 +00:00
jband%netscape.com
1c8e695487 (not part of client build) added single makefile controlled switchpoint using awk generated Java source file for ASSERT and DEBUG in ifcui
git-svn-id: svn://10.0.0.236/trunk@10174 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 19:04:53 +00:00
mcafee%netscape.com
d688a6f0a0 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10122 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 06:54:49 +00:00
mcafee%netscape.com
035bbf7fb2 Uninitialized variable compiler warnings on Linux
git-svn-id: svn://10.0.0.236/trunk@10120 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 05:16:58 +00:00
jband%netscape.com
948f6f521c (not part of client build) initial checkin of mozilla/js/jsdj (migrated from ns/js/jsdj)
git-svn-id: svn://10.0.0.236/trunk@10115 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 02:07:50 +00:00
jband%netscape.com
beb5a39f8e (not EVEN part of mozilla) fix conditional compile code to allow use of debugger without liveconnect
git-svn-id: svn://10.0.0.236/trunk@10107 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-16 00:56:47 +00:00
ccooper%netscape.com
6185ea9c37 Added NPL to LiveConnect java classes.
New file 'JSWrappedException' is used for passing exceptions between Java
and JavaScript.


git-svn-id: svn://10.0.0.236/trunk@10063 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-15 19:53:48 +00:00
rogerl%netscape.com
93e167fada Fixed bug #316293; when break was very first statement in a loop it wasn't
getting patched and so looped for ever.


git-svn-id: svn://10.0.0.236/trunk@9999 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 22:33:19 +00:00
norris%netscape.com
3f06fb0a0a 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.


git-svn-id: svn://10.0.0.236/trunk@9998 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-14 22:01:01 +00:00
jband%netscape.com
1135eee803 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
git-svn-id: svn://10.0.0.236/trunk@9884 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 19:58:15 +00:00
brendan%netscape.com
a006e5dfd3 - 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.


git-svn-id: svn://10.0.0.236/trunk@9834 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 09:25:15 +00:00
jband%netscape.com
8d91096b15 (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
git-svn-id: svn://10.0.0.236/trunk@9810 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-11 04:04:26 +00:00
brendan%netscape.com
9481d98451 Don't CHECK_BRANCH(len) in GOSUB (len must be > 0) or at all in RETSUB.
git-svn-id: svn://10.0.0.236/trunk@9757 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:46:37 +00:00
brendan%netscape.com
97918d4e10 - 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.


git-svn-id: svn://10.0.0.236/trunk@9754 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:42:26 +00:00
norris%netscape.com
8105e6a166 Fix 312954 "monkey: on HPUX, special case failure when dividing by -0"
git-svn-id: svn://10.0.0.236/trunk@9751 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:27:16 +00:00
brendan%netscape.com
efc54c518a - Added commentary for TOK_DEFSHARP nodes explaining pn_kid's purpose.
- Don't over-commend nearby #endifs at the expense of legibility.


git-svn-id: svn://10.0.0.236/trunk@9750 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 20:13:06 +00:00
brendan%netscape.com
eea9ddc5af - Use JSBool for MatchChar's return type and values.
- Spacing nits.


git-svn-id: svn://10.0.0.236/trunk@9744 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:58:15 +00:00
brendan%netscape.com
ee9e8bb28a Remove excessive JS_FRIEND_API uses; clean up nits.
git-svn-id: svn://10.0.0.236/trunk@9740 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 19:18:23 +00:00
shaver%netscape.com
a5b1f502b6 clean up old assertions and remove vestigial tryLimit
git-svn-id: svn://10.0.0.236/trunk@9734 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 17:45:37 +00:00
shaver%netscape.com
e0896531eb fix memory leak
git-svn-id: svn://10.0.0.236/trunk@9731 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 14:56:58 +00:00
brendan%netscape.com
5867a55bdc Need to prevent GC activation during compile on the compiling context, not
just when evaluating old-style switch case expressions.


git-svn-id: svn://10.0.0.236/trunk@9726 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-10 07:09:44 +00:00
brendan%netscape.com
1ac77c94fe Remove javaData, left over from original LiveConnect.
git-svn-id: svn://10.0.0.236/trunk@9650 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:20:07 +00:00
brendan%netscape.com
74114cf984 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,,]).


git-svn-id: svn://10.0.0.236/trunk@9649 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 19:18:01 +00:00
brendan%netscape.com
7b7ccadd57 - 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).


git-svn-id: svn://10.0.0.236/trunk@9611 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 10:02:12 +00:00
brendan%netscape.com
5f08bf111e Fix tempPool bloat bugs in Function by mark/release around NewTokenStream.
git-svn-id: svn://10.0.0.236/trunk@9610 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 09:50:40 +00:00
brendan%netscape.com
d06c6009ae - 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.


git-svn-id: svn://10.0.0.236/trunk@9609 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 09:27:56 +00:00
brendan%netscape.com
0c04e27eb1 JSMSG_NO_FORMAL duplicated DUPLICATE_FORMAL, now is reborn as BAD_FORMAL.
git-svn-id: svn://10.0.0.236/trunk@9607 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 09:04:35 +00:00
brendan%netscape.com
dfee645789 Improve TABLESWITCH comment precision and add XXX about JSVERSION_IS_ECMAv2.
git-svn-id: svn://10.0.0.236/trunk@9598 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 06:35:30 +00:00
brendan%netscape.com
4976336cd7 Renamed SRC_COMMA to SRC_PCDELTA and fixed related comments.
git-svn-id: svn://10.0.0.236/trunk@9590 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 02:16:19 +00:00
brendan%netscape.com
293dc6ae2d Fix busted version check in JSOP_TABLESWITCH.
git-svn-id: svn://10.0.0.236/trunk@9589 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-09 02:01:52 +00:00
shaver%netscape.com
91f063881e ToBoolean behaviour for all non-ECMA versions, not just 1.2
git-svn-id: svn://10.0.0.236/trunk@9538 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 20:59:19 +00:00
beard%netscape.com
34c2fcfcff Changed JavaPackage_resolve, to remove a memory leak.
git-svn-id: svn://10.0.0.236/trunk@9510 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 19:08:09 +00:00
brendan%netscape.com
7d1f9f8984 Don't emit two SRC_HIDDENs in a row.
git-svn-id: svn://10.0.0.236/trunk@9508 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:26:37 +00:00
norris%netscape.com
7f284fbf17 Fix bug: space was not allocated for terminal '\0' in string.
Spell "JavaScript" correctly.


git-svn-id: svn://10.0.0.236/trunk@9506 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 18:18:52 +00:00
brendan%netscape.com
8189f39979 Oops! How did that ever work on my Win32 build?
git-svn-id: svn://10.0.0.236/trunk@9476 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 05:49:12 +00:00
brendan%netscape.com
12a9d81b7f 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.


git-svn-id: svn://10.0.0.236/trunk@9475 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-08 05:39:51 +00:00
brendan%netscape.com
828b802387 Remove '(balance' comments, fix hanging indents, other nits.
git-svn-id: svn://10.0.0.236/trunk@9458 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 19:23:06 +00:00
brendan%netscape.com
40a84ecba5 Fix switch comments, it's not a ternary node any longer.
git-svn-id: svn://10.0.0.236/trunk@9457 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 19:19:04 +00:00
brendan%netscape.com
f85feaca03 - Use consistent spelling in the API: "Callback" not "CallBack" -- it's a one
word neologism, not two words.
- Use consistent neighboring terseness ("error" rather than "err" in intercaps
  identifiers).
- Don't leave pointers in JSErrorReport to freed memory if bailing on OOM in
  jscntxt.c:js_ExpandErrorArguments.
- Hanging indentation, code fusion via continue, and other misc. cleanups.


git-svn-id: svn://10.0.0.236/trunk@9455 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-06 08:07:35 +00:00
bjorn%netscape.com
945b841d48 Added a missing read in ArenaAllocate.
git-svn-id: svn://10.0.0.236/trunk@9398 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 00:36:14 +00:00
bjorn%netscape.com
c4ef934afe Locks with almost no global locking. This will relieve contention.
git-svn-id: svn://10.0.0.236/trunk@9397 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-05 00:34:03 +00:00
shaver%netscape.com
952f75d830 fix ifdef breakage
git-svn-id: svn://10.0.0.236/trunk@9355 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 18:48:16 +00:00
norris%netscape.com
e41858a470 Previous checkin was mistaken; back it out.
git-svn-id: svn://10.0.0.236/trunk@9300 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:47:22 +00:00
norris%netscape.com
bc2d3f5307 Add support for ECMA switch statements. These are like LISP cond in that they
evaluate the case label each time.
Still to do is to optimize so that TABLESWITCH and LOOKUPSWITCH are created
when possible.


git-svn-id: svn://10.0.0.236/trunk@9296 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-04 00:45:21 +00:00
rogerl%netscape.com
9f90098dfb Removed redundant #undef
git-svn-id: svn://10.0.0.236/trunk@9269 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 22:50:55 +00:00
cyeh%netscape.com
b355f7ea0e remove JSJDebug.o and JSJ.o files from all targets. also turn modification date caching off to fix dependencies not working
git-svn-id: svn://10.0.0.236/trunk@9235 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:53:27 +00:00
rogerl%netscape.com
5bc4554a6e New errorNumber handling.
Fixed bug #317398, for loop without condition wasn't decompiling the body
correctly since the first statement in that body was getting eaten by
mistake when trying to consume the condition expression.


git-svn-id: svn://10.0.0.236/trunk@9233 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:44:55 +00:00
rogerl%netscape.com
1400e8fb8b New errorNumber handling
git-svn-id: svn://10.0.0.236/trunk@9232 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:35:41 +00:00
rogerl%netscape.com
f039948f09 New break-out of error message text from core engine
git-svn-id: svn://10.0.0.236/trunk@9231 18797224-902f-48f8-a5cc-f745e15eee43
1998-09-03 20:33:32 +00:00