head	1.4;
access;
symbols
	RELEASE_8_3_0:1.3
	RELEASE_9_0_0:1.3
	RELEASE_7_4_0:1.3
	RELEASE_8_2_0:1.3
	RELEASE_6_EOL:1.3
	RELEASE_8_1_0:1.3
	RELEASE_7_3_0:1.3
	RELEASE_8_0_0:1.3
	RELEASE_7_2_0:1.3
	RELEASE_7_1_0:1.3
	RELEASE_6_4_0:1.3
	RELEASE_5_EOL:1.2
	RELEASE_7_0_0:1.2
	RELEASE_6_3_0:1.2
	PRE_XORG_7:1.2
	RELEASE_4_EOL:1.2
	RELEASE_6_2_0:1.2
	RELEASE_6_1_0:1.2
	RELEASE_5_5_0:1.2
	RELEASE_6_0_0:1.1;
locks; strict;
comment	@# @;


1.4
date	2012.09.02.19.59.20;	author tj;	state dead;
branches;
next	1.3;

1.3
date	2008.07.08.18.03.31;	author okazaki;	state Exp;
branches;
next	1.2;

1.2
date	2006.01.08.21.31.22;	author edwin;	state Exp;
branches;
next	1.1;

1.1
date	2005.08.11.04.00.00;	author mi;	state Exp;
branches;
next	;


desc
@@


1.4
log
@SVN rev 303570 on 2012-09-02 19:59:20Z by tj

Rename lang/spidermonkey to lang/spidermonkey17 in preperation for the
import of lang/spidermonkey18.

Approved by:	Dan Rench <citric@@cubicone.tmetic.com> (maintainer)
Approved by:	eadler (mentor)
@
text
@--- jsdtoa.c	2007-01-18 00:56:12.000000000 +0100
+++ jsdtoa.c	2008-06-19 16:34:02.000000000 +0200
@@@@ -247,7 +247,8 @@@@
 #define word1(x)        JSDOUBLE_LO32(x)
 #define set_word1(x, y) JSDOUBLE_SET_LO32(x, y)
 
-#define Storeinc(a,b,c) (*(a)++ = (b) << 16 | (c) & 0xffff)
+#define Storeinc(a,b,c) (*(a)++ = (b) << 16 | ((c) & 0xffff))
+
 
 /* #define P DBL_MANT_DIG */
 /* Ten_pmax = floor(P*log(2)/log(5)) */
--- jspubtd.h	2007-06-23 01:13:21.000000000 +0200
+++ jspubtd.h	2008-06-19 16:26:08.000000000 +0200
@@@@ -616,7 +616,7 @@@@
 typedef JSBool
 (* JS_DLL_CALLBACK JSArgumentFormatter)(JSContext *cx, const char *format,
                                         JSBool fromJS, jsval **vpp,
-                                        va_list *app);
+                                        va_list app);
 #endif
 
 typedef JSBool
--- jsapi.c	2007-10-03 16:36:48.000000000 +0200
+++ jsapi.c	2008-06-19 17:17:52.000000000 +0200
@@@@ -134,7 +134,7 @@@@
 
 static JSBool
 TryArgumentFormatter(JSContext *cx, const char **formatp, JSBool fromJS,
-                     jsval **vpp, va_list *app)
+                     jsval **vpp, va_list app)
 {
     const char *format;
     JSArgumentFormatMap *map;
@@@@ -263,8 +263,7 @@@@
             break;
           default:
             format--;
-            if (!TryArgumentFormatter(cx, &format, JS_TRUE, &sp,
-                                      JS_ADDRESSOF_VA_LIST(ap))) {
+            if (!TryArgumentFormatter(cx, &format, JS_TRUE, &sp, ap)) {
                 return JS_FALSE;
             }
             /* NB: the formatter already updated sp, so we continue here. */
@@@@ -366,8 +365,7 @@@@
             break;
           default:
             format--;
-            if (!TryArgumentFormatter(cx, &format, JS_FALSE, &sp,
-                                      JS_ADDRESSOF_VA_LIST(ap))) {
+            if (!TryArgumentFormatter(cx, &format, JS_FALSE, &sp, ap)) {
                 goto bad;
             }
             /* NB: the formatter already updated sp, so we continue here. */
--- js.c	2007-04-20 20:45:18.000000000 +0200
+++ js.c	2008-06-19 18:17:29.000000000 +0200
@@@@ -978,7 +978,7 @@@@
                 }
             }
         }
-        fprintf(gOutFile, "%3u: %5u [%4u] %-8s",
+        fprintf(gOutFile, "%3tu: %5u [%4u] %-8s",
                 PTRDIFF(sn, notes, jssrcnote), offset, delta, name);
         switch (type) {
           case SRC_SETLINE:
--- jscntxt.h	2007-04-06 22:53:21.000000000 +0200
+++ jscntxt.h	2008-06-19 18:36:28.000000000 +0200
@@@@ -598,7 +598,7 @@@@
 
 #define JS_PUSH_TEMP_ROOT(cx,cnt,arr,tvr)                                     \
     JS_BEGIN_MACRO                                                            \
-        JS_ASSERT((ptrdiff_t)(cnt) >= 0);                                     \
+        JS_ASSERT((int)(cnt) >= 0);                                           \
         (tvr)->count = (ptrdiff_t)(cnt);                                      \
         (tvr)->u.array = (arr);                                               \
         JS_PUSH_TEMP_ROOT_COMMON(cx, tvr);                                    \
--- jsxml.c	2007-04-19 04:18:25.000000000 +0200
+++ jsxml.c	2008-06-19 18:49:44.000000000 +0200
@@@@ -1058,7 +1058,10 @@@@
             free(array->vector);
         vector = NULL;
     } else {
-        if ((size_t)capacity > ~(size_t)0 / sizeof(void *) ||
+        if ( 
+#if JS_BITS_PER_WORD == 32 
+        	(size_t)capacity > ~(size_t)0 / sizeof(void *) ||  
+#endif
             !(vector = (void **)
                        realloc(array->vector, capacity * sizeof(void *)))) {
             if (cx)
@@@@ -1153,7 +1156,10 @@@@
                 JS_CEILING_LOG2(log2, capacity);
                 capacity = JS_BIT(log2);
             }
-            if ((size_t)capacity > ~(size_t)0 / sizeof(void *) ||
+            if ( 
+#if JS_BITS_PER_WORD == 32 
+                (size_t)capacity > ~(size_t)0 / sizeof(void *) ||  
+#endif
                 !(vector = (void **)
                            realloc(array->vector, capacity * sizeof(void *)))) {
                 JS_ReportOutOfMemory(cx);
--- jsarray.c	2007-09-29 01:29:52.000000000 +0200
+++ jsarray.c	2008-06-19 19:12:02.000000000 +0200
@@@@ -1051,10 +1051,12 @@@@
      * Check that its size does not overflow size_t, which would allow for
      * indexing beyond the end of the malloc'd vector.
      */
-    if (len > ((size_t) -1) / sizeof(jsval)) {
+#if JS_BITS_PER_WORD == 32
+    if ((size_t)len > ~(size_t)0 / sizeof(jsval)) {
         JS_ReportOutOfMemory(cx);
         return JS_FALSE;
     }
+#endif
 
     vec = (jsval *) JS_malloc(cx, ((size_t) len) * sizeof(jsval));
     if (!vec)
@


1.3
log
@Updates the port to Javascript 1.7.
Much thanks to Bernhard Frhlich for doing the heavy lifting.

PR:		125191
Submitted by:	maintainer
@
text
@@


1.2
log
@Spidermonkey version update to 1.5 with fixes for ia64/amd64

	Update source to spidermonkey 1.5 and patched (much thanks to Anish Mistry) to fix compilation problems under amd64 (and presumably ia64 too but untested) and to make the build thread-safe.

PR:		ports/91522
Submitted by:	Dan Rench <citric@@cubicone.tmetic.com>
@
text
@d1 4
a4 73
--- jspubtd.h	Thu Apr  7 15:54:07 2005
+++ jspubtd.h	Thu Aug  4 23:52:12 2005
@@@@ -517,5 +517,5 @@@@
 (* JS_DLL_CALLBACK JSArgumentFormatter)(JSContext *cx, const char *format,
                                         JSBool fromJS, jsval **vpp,
-                                        va_list *app);
+                                        va_list app);
 #endif
 
--- jsdhash.c	Wed Jan 14 21:00:53 2004
+++ jsdhash.c	Fri Aug  5 00:15:04 2005
@@@@ -92,5 +92,5 @@@@
 JS_DHashVoidPtrKeyStub(JSDHashTable *table, const void *key)
 {
-    return (JSDHashNumber)key >> 2;
+    return (JSDHashNumber)(uintptr_t)key >> 2;
 }
 
--- jsstr.c	Fri Jun  3 15:07:49 2005
+++ jsstr.c	Fri Aug  5 01:31:08 2005
@@@@ -2596,5 +2596,5 @@@@
 js_hash_string_pointer(const void *key)
 {
-    return (JSHashNumber)key >> JSVAL_TAGBITS;
+    return (JSHashNumber)(uintptr_t)key >> JSVAL_TAGBITS;
 }
 
--- jsobj.h	Wed Sep  1 17:33:16 2004
+++ jsobj.h	Fri Aug  5 01:16:56 2005
@@@@ -238,12 +238,12 @@@@
 };
 
-#define SHARP_BIT       ((jsatomid) 1)
-#define BUSY_BIT        ((jsatomid) 2)
+#define SHARP_BIT       ((uintptr_t) 1)
+#define BUSY_BIT        ((uintptr_t) 2)
 #define SHARP_ID_SHIFT  2
-#define IS_SHARP(he)    ((jsatomid)(he)->value & SHARP_BIT)
-#define MAKE_SHARP(he)  ((he)->value = (void*)((jsatomid)(he)->value|SHARP_BIT))
-#define IS_BUSY(he)     ((jsatomid)(he)->value & BUSY_BIT)
-#define MAKE_BUSY(he)   ((he)->value = (void*)((jsatomid)(he)->value|BUSY_BIT))
-#define CLEAR_BUSY(he)  ((he)->value = (void*)((jsatomid)(he)->value&~BUSY_BIT))
+#define IS_SHARP(he)    ((uintptr_t)(he)->value & SHARP_BIT)
+#define MAKE_SHARP(he)  ((he)->value = (void*)((uintptr_t)(he)->value|SHARP_BIT))
+#define IS_BUSY(he)     ((uintptr_t)(he)->value & BUSY_BIT)
+#define MAKE_BUSY(he)   ((he)->value = (void*)((uintptr_t)(he)->value|BUSY_BIT))
+#define CLEAR_BUSY(he)  ((he)->value = (void*)((uintptr_t)(he)->value&~BUSY_BIT))
 
 extern JSHashEntry *
--- jstypes.h	Fri Nov 14 19:11:04 2003
+++ jstypes.h	Thu Aug  4 23:54:13 2005
@@@@ -378,6 +378,7 @@@@
 ** A JSWord is an integer that is the same size as a void*
 */
+#include <inttypes.h>
-typedef long JSWord;
-typedef unsigned long JSUword;
+typedef intptr_t JSWord;
+typedef uintptr_t JSUword;
 
 #include "jsotypes.h"
--- jsosdep.h	Fri Nov 14 19:10:59 2003
+++ jsosdep.h	Fri Aug  5 00:50:44 2005
@@@@ -102,5 +102,5 @@@@
 #define JS_HAVE_LONG_LONG
 
-#elif defined(FREEBSD)
+#elif defined(FREEBSD) || defined(__FreeBSD__)
 #define JS_HAVE_LONG_LONG
 
--- jsdtoa.c	Sat Apr  3 17:11:11 2004
+++ jsdtoa.c	Fri Aug  5 00:28:15 2005
@@@@ -258,5 +258,5 @@@@
d9 1
d12 9
a20 33
@@@@ -990,5 +990,6 @@@@
 {
     register Long L;
-    double a;
+    double a = 0.;	/* only need to initialize to calm the compiler.
+			 * set_word0 and set_word1 set a, but in two stages */
 
     L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1;
@@@@ -1021,5 +1022,5 @@@@
     ULong *xa, *xa0, w, y, z;
     int32 k;
-    double d;
+    double d = 0.;
 #define d0 word0(d)
 #define d1 word1(d)
@@@@ -1837,4 +1838,5 @@@@
 #ifdef Avoid_Underflow
     if (scale) {
+        rv0 = 0.; /* calm the compiler warning */
         set_word0(rv0, Exp_1 - P*Exp_msk1);
         set_word1(rv0, 0);
--- jsatom.h	Wed Feb 11 02:21:59 2004
+++ jsatom.h	Fri Aug  5 01:21:44 2005
@@@@ -96,5 +96,5 @@@@
 
 #define ALE_ATOM(ale)   ((JSAtom *) (ale)->entry.key)
-#define ALE_INDEX(ale)  ((jsatomid) (ale)->entry.value)
+#define ALE_INDEX(ale)  ((jsatomid)(uintptr_t)(ale)->entry.value)
 #define ALE_JSOP(ale)   ((JSOp) (ale)->entry.value)
 #define ALE_VALUE(ale)  ((jsval) (ale)->entry.value)
--- jsatom.c	Tue Jul  6 03:49:18 2004
+++ jsatom.c	Fri Aug  5 01:23:29 2005
@@@@ -137,5 +137,5 @@@@
d23 4
a26 6
-#define HASH_OBJECT(o)  ((JSHashNumber)(o) >> JSVAL_TAGBITS)
+#define HASH_OBJECT(o)  ((JSHashNumber)(uintptr_t)(o) >> JSVAL_TAGBITS)
 #define HASH_INT(i)     ((JSHashNumber)(i))
 #define HASH_DOUBLE(dp) ((JSHashNumber)(JSDOUBLE_HI32(*dp) ^ JSDOUBLE_LO32(*dp)))
@@@@ -834,5 +834,5 @@@@
         }
a27 181
-        ALE_SET_INDEX(ale, al->count++);
+        ALE_SET_INDEX(ale, (intptr_t)al->count++);
     }
     return ale;
--- jsscript.c	Fri Jul  8 21:48:08 2005
+++ jsscript.c	Fri Aug  5 01:29:26 2005
@@@@ -322,5 +322,5 @@@@
     if (!JS_XDRUint32(xdr, &index))
         return JS_FALSE;
-    ALE_SET_INDEX(ale, index);
+    ALE_SET_INDEX(ale, (uintptr_t)index);
 
     if (!JS_XDRValue(xdr, &value))
@@@@ -338,5 +338,5 @@@@
 {
     uint32 length;
-    uintN i;
+    uintptr_t i;
     JSBool ok;
 
--- jsinterp.c	Fri Jun  4 21:39:32 2004
+++ jsinterp.c	Sat Aug  6 18:56:29 2005
@@@@ -1382,9 +1382,9 @@@@
     jsbytecode *pc, *pc2, *endpc;
     JSOp op, op2;
-    const JSCodeSpec *cs;
+    const JSCodeSpec *cs = NULL;
     JSAtom *atom;
     uintN argc, slot, attrs;
     jsval *vp, lval, rval, ltmp, rtmp;
-    jsid id;
+    jsid id = -1L; /* initialize to something awful */
     JSObject *withobj, *origobj, *propobj;
     jsval iter_state;
@@@@ -1398,5 +1398,5 @@@@
     JSType type;
 #ifdef DEBUG
-    FILE *tracefp;
+    FILE *tracefp = NULL;
 #endif
 #if JS_HAS_EXPORT_IMPORT
@@@@ -1475,4 +1475,5 @@@@
         JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_OVER_RECURSED);
         ok = JS_FALSE;
+        sp = NULL;
         goto out;
     }
@@@@ -1484,4 +1485,5 @@@@
     if (!newsp) {
         ok = JS_FALSE;
+        sp = NULL;
         goto out;
     }
@@@@ -1517,5 +1519,5 @@@@
                     }
                 }
-                fprintf(tracefp, " @@ %d\n", sp - fp->spbase);
+                fprintf(tracefp, " @@ %td\n", sp - fp->spbase);
             }
         }
@@@@ -4209,5 +4211,5 @@@@
                     }
                 }
-                fprintf(tracefp, " @@ %d\n", sp - fp->spbase);
+                fprintf(tracefp, " @@ %td\n", sp - fp->spbase);
             }
             fprintf(tracefp, "  stack: ");
--- jsobj.c	Wed Jun  2 17:20:56 2004
+++ jsobj.c	Sat Aug  6 19:08:39 2005
@@@@ -378,5 +378,5 @@@@
 js_hash_object(const void *key)
 {
-    return (JSHashNumber)key >> JSVAL_TAGBITS;
+    return (JSHashNumber)(uintptr_t)key >> JSVAL_TAGBITS;
 }
 
@@@@ -407,5 +407,5 @@@@
     if (!he) {
         sharpid = 0;
-        he = JS_HashTableRawAdd(table, hep, hash, obj, (void *)sharpid);
+        he = JS_HashTableRawAdd(table, hep, hash, obj, (void *)(uintptr_t)sharpid);
         if (!he) {
             JS_ReportOutOfMemory(cx);
@@@@ -461,8 +461,8 @@@@
             return NULL;
     } else {
-        sharpid = (jsatomid) he->value;
+        sharpid = (jsatomid)(uintptr_t)he->value;
         if (sharpid == 0) {
             sharpid = ++map->sharpgen << SHARP_ID_SHIFT;
-            he->value = (void *) sharpid;
+            he->value = (void *)(uintptr_t)sharpid;
         }
         ida = NULL;
@@@@ -505,5 +505,5 @@@@
         if (!he)
             goto bad;
-        JS_ASSERT((((jsatomid) he->value) & SHARP_BIT) == 0);
+        JS_ASSERT((((uintptr_t)he->value) & SHARP_BIT) == 0);
         if (!idap) {
             JS_DestroyIdArray(cx, ida);
@@@@ -534,5 +534,5 @@@@
     }
 
-    sharpid = (jsatomid) he->value;
+    sharpid = (jsatomid)(uintptr_t)he->value;
     if (sharpid == 0) {
         *sp = NULL;
--- jsopcode.c	Thu Jun 10 00:33:52 2004
+++ jsopcode.c	Sat Aug  6 19:13:50 2005
@@@@ -181,5 +181,5 @@@@
       case JOF_JUMPX:
         off = GetJumpOffset(pc, pc);
-        fprintf(fp, " %u (%d)", loc + off, off);
+        fprintf(fp, " %tu (%td)", loc + off, off);
         break;
 
@@@@ -216,8 +216,8 @@@@
         high = GET_JUMP_OFFSET(pc2);
         pc2 += JUMP_OFFSET_LEN;
-        fprintf(fp, " defaultOffset %d low %d high %d", off, low, high);
+        fprintf(fp, " defaultOffset %td low %d high %d", off, low, high);
         for (i = low; i <= high; i++) {
             off = GetJumpOffset(pc, pc2);
-            fprintf(fp, "\n\t%d: %d", i, off);
+            fprintf(fp, "\n\t%d: %td", i, off);
             pc2 += jmplen;
         }
@@@@ -253,5 +253,5 @@@@
             if (!cstr)
                 return 0;
-            fprintf(fp, "\n\t%s: %d", cstr, off);
+            fprintf(fp, "\n\t%s: %td", cstr, off);
             JS_free(cx, cstr);
             npairs--;
--- jsparse.c	Mon Mar 29 22:20:03 2004
+++ jsparse.c	Sat Aug  6 19:15:27 2005
@@@@ -876,5 +876,5 @@@@
                 return NULL;
         }
-        ALE_SET_JSOP(ale, tc->topStmt ? JSOP_CLOSURE : JSOP_DEFFUN);
+        ALE_SET_JSOP(ale, (uintptr_t)(tc->topStmt ? JSOP_CLOSURE : JSOP_DEFFUN));
 
 #if JS_HAS_LEXICAL_CLOSURE
--- jsprf.c	Wed Feb 25 08:33:42 2004
+++ jsprf.c	Sat Aug  6 19:18:26 2005
@@@@ -56,5 +56,5 @@@@
 */
 #ifdef HAVE_VA_COPY
-#define VARARGS_ASSIGN(foo, bar)        VA_COPY(foo,bar)
+#define VARARGS_ASSIGN(foo, bar)        va_copy(foo,bar)
 #elif defined(HAVE_VA_LIST_AS_ARRAY)
 #define VARARGS_ASSIGN(foo, bar)        foo[0] = bar[0]
--- js.c	Wed Feb 11 02:21:59 2004
+++ js.c	Sat Aug  6 19:23:09 2005
@@@@ -921,5 +921,5 @@@@
         delta = SN_DELTA(sn);
         offset += delta;
-        fprintf(gOutFile, "%3u: %5u [%4u] %-8s",
+        fprintf(gOutFile, "%3tu: %5u [%4u] %-8s",
                 PTRDIFF(sn, notes, jssrcnote), offset, delta,
                 js_SrcNoteSpec[SN_TYPE(sn)].name);
@@@@ -1006,5 +1006,5 @@@@
     fprintf(gOutFile, "\nException table:\nstart\tend\tcatch\n");
     while (tn->start && tn->catchStart) {
-        fprintf(gOutFile, "  %d\t%d\t%d\n",
+        fprintf(gOutFile, "  %td\t%td\t%td\n",
                tn->start, tn->start + tn->length, tn->catchStart);
         tn++;
@@@@ -1222,6 +1222,6 @@@@
 #undef  DUMP_ATTR
 
-        fprintf(fp, " slot %lu flags %x shortid %d\n",
-                sprop->slot, sprop->flags, sprop->shortid);
+        fprintf(fp, " slot %u flags %x shortid %d\n",
+                (unsigned)sprop->slot, (int)sprop->flags, (int)sprop->shortid);
     }
 }
--- jsapi.c	Wed Jun 16 17:42:39 2004
+++ jsapi.c	Mon Aug  8 02:32:15 2005
@@@@ -126,5 +126,5 @@@@
d34 3
a36 1
@@@@ -264,6 +264,5 @@@@
d44 3
a46 1
@@@@ -367,6 +366,5 @@@@
d54 62
a115 1
@@@@ -2190,5 +2188,5 @@@@
d117 2
a118 5
     if (attrs & JSPROP_INDEX) {
-        id = INT_TO_JSVAL((jsint)name);
+        id = INT_TO_JSVAL(name);
         atom = NULL;
         attrs &= ~JSPROP_INDEX;
@


1.1
log
@Unbreak for all platforms (tested on amd64 and i386) -- use -fPIC
on sparc64 and -fpic elsewhere. While here, make the following
improvements:

	. ignore the vendor's fdlibm and use our own -lm. fdlibm is
	  derived from the same msun as ours, but spidermonkey was
	  misteriously linking with _both_. All mozilla-ports seem
	  to have the same problem right now;
	. use our -lreadline instead of compiling vendor's own
	  libeditline;
	. fix all warnings (clean build with -Wall -Werror);
	. link the installed executable (js) against the shared
	  library libjs.so instead of against the invididual objects;
	. unless WITHOUT_TEST is set, download and run vendor's own
	  tests in post-build (this triggers USE_PERL_BUILD). Some
	  tests had to be patched from Mozilla's CVS, because the
	  released tarball of them was not updated since 2002.

Bump PORTREVISION.

Approved by:	portmgr	(marcus)
Approved by:	maintainer timeout
@
text
@a229 7
@@@@ -1104,5 +1104,5 @@@@
     const JSResolvingKey *key = (const JSResolvingKey *)ptr;
 
-    return ((JSDHashNumber)key->obj >> JSVAL_TAGBITS) ^ key->id;
+    return ((JSDHashNumber)(uintptr_t)key->obj >> JSVAL_TAGBITS) ^ key->id;
 }
 
a249 17
@@@@ -230,5 +230,5 @@@@
       {
         jsbytecode *pc2;
-        jsint npairs;
+        int npairs;
 
         jmplen = (type == JOF_LOOKUPSWITCH) ? JUMP_OFFSET_LEN
@@@@ -237,7 +237,7 @@@@
         off = GetJumpOffset(pc, pc2);
         pc2 += jmplen;
-        npairs = (jsint) GET_ATOM_INDEX(pc2);
+        npairs = GET_ATOM_INDEX(pc2);
         pc2 += ATOM_INDEX_LEN;
-        fprintf(fp, " offset %d npairs %u", off, (uintN) npairs);
+        fprintf(fp, " offset %td npairs %d", off, npairs);
         while (npairs) {
             atom = GET_ATOM(cx, script, pc2);
@

