From 4fb85335a30260498bcd71ea7ab5aedf6f7ebcfb Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 22 Mar 2003 00:14:31 +0000
Subject: [PATCH] Added descriptions for associative arrays, made them
 enumerable again.

---
 src/sbbs3/js_file_area.c | 7 ++++++-
 src/sbbs3/js_msg_area.c  | 8 ++++++--
 src/sbbs3/js_xtrn_area.c | 7 ++++++-
 3 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/js_file_area.c b/src/sbbs3/js_file_area.c
index 7c7194dd69..541f84eb2d 100644
--- a/src/sbbs3/js_file_area.c
+++ b/src/sbbs3/js_file_area.c
@@ -294,7 +294,7 @@ JSObject* DLLCALL js_CreateFileAreaObject(JSContext* cx, JSObject* parent, scfg_
 
 			/* Add as property (associative array element) */
 			if(!JS_DefineProperty(cx, alldirs, cfg->dir[d]->code, val
-				,NULL,NULL,JSPROP_READONLY))
+				,NULL,NULL,JSPROP_READONLY|JSPROP_ENUMERATE))
 				return(NULL);
 
 #ifdef _DEBUG
@@ -315,6 +315,11 @@ JSObject* DLLCALL js_CreateFileAreaObject(JSContext* cx, JSObject* parent, scfg_
 	if(!JS_SetProperty(cx, areaobj, "dir", &val))
 		return(NULL);
 
+#ifdef _DEBUG
+	js_DescribeObject(cx,alldirs,"Associative array of all directories (use internal code as index)");
+	JS_DefineProperty(cx,alldirs,"_dont_document",JSVAL_TRUE,NULL,NULL,JSPROP_READONLY);
+#endif
+
 	return(areaobj);
 }
 
diff --git a/src/sbbs3/js_msg_area.c b/src/sbbs3/js_msg_area.c
index 45704be4fe..6ff9395a43 100644
--- a/src/sbbs3/js_msg_area.c
+++ b/src/sbbs3/js_msg_area.c
@@ -317,10 +317,9 @@ JSObject* DLLCALL js_CreateMsgAreaObject(JSContext* cx, JSObject* parent, scfg_t
 
 			/* Add as property (associative array element) */
 			if(!JS_DefineProperty(cx, allsubs, cfg->sub[d]->code, val
-				,NULL,NULL,JSPROP_READONLY))
+				,NULL,NULL,JSPROP_READONLY|JSPROP_ENUMERATE))
 				return(NULL);
 
-
 #ifdef _DEBUG
 			js_DescribeObject(cx,subobj,"Message Sub-boards");
 #endif
@@ -339,6 +338,11 @@ JSObject* DLLCALL js_CreateMsgAreaObject(JSContext* cx, JSObject* parent, scfg_t
 	if(!JS_SetProperty(cx, areaobj, "sub", &val))
 		return(NULL);
 
+#ifdef _DEBUG
+	js_DescribeObject(cx,allsubs,"Associative array of all sub-boards (use internal code as index)");
+	JS_DefineProperty(cx,allsubs,"_dont_document",JSVAL_TRUE,NULL,NULL,JSPROP_READONLY);
+#endif
+
 	return(areaobj);
 }
 
diff --git a/src/sbbs3/js_xtrn_area.c b/src/sbbs3/js_xtrn_area.c
index f955062036..a977c8640a 100644
--- a/src/sbbs3/js_xtrn_area.c
+++ b/src/sbbs3/js_xtrn_area.c
@@ -245,7 +245,7 @@ JSObject* DLLCALL js_CreateXtrnAreaObject(JSContext* cx, JSObject* parent, scfg_
 
 			/* Add as property (associative array element) */
 			if(!JS_DefineProperty(cx, allprog, cfg->xtrn[d]->code, val
-				,NULL,NULL,JSPROP_READONLY))
+				,NULL,NULL,JSPROP_READONLY|JSPROP_ENUMERATE))
 				return(NULL);
 
 #ifdef _DEBUG
@@ -266,6 +266,11 @@ JSObject* DLLCALL js_CreateXtrnAreaObject(JSContext* cx, JSObject* parent, scfg_
 	if(!JS_SetProperty(cx, areaobj, "prog", &val))
 		return(NULL);
 
+#ifdef _DEBUG
+	js_DescribeObject(cx,allprog,"Associative array of all external programs (use internal code as index)");
+	JS_DefineProperty(cx,allprog,"_dont_document",JSVAL_TRUE,NULL,NULL,JSPROP_READONLY);
+#endif
+
 	/* Create event property */
 	if((eventobj=JS_NewObject(cx,NULL,NULL,areaobj))==NULL)
 		return(NULL);
-- 
GitLab