shithub: libmujs

Download patch

ref: 588fdd18d6cdab241ee4af92cd854ff20fffb691
parent: 5f3ea4132d2a7b34c3a14b196f2444f375d1f93b
author: Tor Andersson <tor@ccxvii.net>
date: Tue Feb 18 08:39:49 EST 2014

Small cleanups.

--- a/jscompile.c
+++ b/jscompile.c
@@ -295,7 +295,6 @@
 		break;
 	default:
 		jsC_error(J, lhs, "invalid l-value in assignment");
-		break;
 	}
 }
 
@@ -331,7 +330,6 @@
 		break;
 	default:
 		jsC_error(J, lhs, "invalid l-value in for-in loop assignment");
-		break;
 	}
 }
 
@@ -357,7 +355,6 @@
 		break;
 	default:
 		jsC_error(J, lhs, "invalid l-value in assignment");
-		break;
 	}
 }
 
@@ -374,7 +371,6 @@
 		break;
 	default:
 		jsC_error(J, lhs, "invalid l-value in assignment");
-		break;
 	}
 }
 
@@ -403,7 +399,6 @@
 		break;
 	default:
 		jsC_error(J, exp, "invalid l-value in delete expression");
-		break;
 	}
 }
 
@@ -612,7 +607,7 @@
 
 /* Patch break and continue statements */
 
-static void addjump(JF, js_AstType type, js_Ast *target, int inst)
+static void addjump(JF, enum js_AstType type, js_Ast *target, int inst)
 {
 	js_JumpList *jump = malloc(sizeof *jump);
 	jump->type = type;
@@ -632,7 +627,7 @@
 	}
 }
 
-static int isloop(js_AstType T)
+static int isloop(enum js_AstType T)
 {
 	return T == STM_DO || T == STM_WHILE ||
 		T == STM_FOR || T == STM_FOR_VAR ||
@@ -639,7 +634,7 @@
 		T == STM_FOR_IN || T == STM_FOR_IN_VAR;
 }
 
-static int isfun(js_AstType T)
+static int isfun(enum js_AstType T)
 {
 	return T == AST_FUNDEC || T == EXP_FUN || T == EXP_PROP_GET || T == EXP_PROP_SET;
 }
@@ -699,7 +694,7 @@
 
 /* Emit code to rebalance stack and scopes during an abrupt exit */
 
-static void cexit(JF, js_AstType T, js_Ast *node, js_Ast *target)
+static void cexit(JF, enum js_AstType T, js_Ast *node, js_Ast *target)
 {
 	js_Ast *prev;
 	do {
--- a/jscompile.h
+++ b/jscompile.h
@@ -1,8 +1,6 @@
 #ifndef js_compile_h
 #define js_compile_h
 
-typedef enum js_OpCode js_OpCode;
-
 enum js_OpCode
 {
 	OP_POP,		/* A -- */
@@ -151,7 +149,7 @@
 
 js_Function *jsC_compilefunction(js_State *J, js_Ast *prog);
 js_Function *jsC_compile(js_State *J, js_Ast *prog);
-const char *jsC_opcodestring(int opcode);
+const char *jsC_opcodestring(enum js_OpCode opcode);
 void jsC_dumpfunction(js_State *J, js_Function *fun);
 
 #endif
--- a/jsdump.c
+++ b/jsdump.c
@@ -17,7 +17,7 @@
 #include "opnames.h"
 };
 
-const char *jsP_aststring(js_AstType type)
+const char *jsP_aststring(enum js_AstType type)
 {
 	if (type > nelem(astname))
 		return "<unknown>";
@@ -24,14 +24,14 @@
 	return astname[type];
 }
 
-const char *jsC_opcodestring(int opcode)
+const char *jsC_opcodestring(enum js_OpCode opcode)
 {
-	if (opcode < 0 || opcode > nelem(opname))
+	if (opcode > nelem(opname))
 		return "<unknown>";
 	return opname[opcode];
 }
 
-static int prec(js_AstType type)
+static int prec(enum js_AstType type)
 {
 	switch (type) {
 	case EXP_IDENTIFIER:
--- a/jsi.h
+++ b/jsi.h
@@ -45,6 +45,7 @@
 const char *js_utfidxtoptr(const char *s, int i);
 
 void js_dup(js_State *J);
+void js_dup2(js_State *J);
 void js_rot2(js_State *J);
 void js_rot3(js_State *J);
 void js_rot2pop1(js_State *J);
--- a/jsmath.c
+++ b/jsmath.c
@@ -126,14 +126,14 @@
 {
 	js_pushobject(J, jsV_newobject(J, JS_CMATH, J->Object_prototype));
 	{
-		jsB_propn(J, "E", M_E);
-		jsB_propn(J, "LN10", M_LN10);
-		jsB_propn(J, "LN2", M_LN2);
-		jsB_propn(J, "LOG2E", M_LOG2E);
-		jsB_propn(J, "LOG10E", M_LOG10E);
-		jsB_propn(J, "PI", M_PI);
-		jsB_propn(J, "SQRT1_2", M_SQRT1_2);
-		jsB_propn(J, "SQRT2", M_SQRT2);
+		jsB_propn(J, "E", 2.7182818284590452354);
+		jsB_propn(J, "LN10", 2.302585092994046);
+		jsB_propn(J, "LN2", 0.6931471805599453);
+		jsB_propn(J, "LOG2E", 1.4426950408889634);
+		jsB_propn(J, "LOG10E", 0.4342944819032518);
+		jsB_propn(J, "PI", 3.1415926535897932);
+		jsB_propn(J, "SQRT1_2", 0.7071067811865476);
+		jsB_propn(J, "SQRT2", 1.4142135623730951);
 
 		jsB_propf(J, "abs", Math_abs, 1);
 		jsB_propf(J, "acos", Math_acos, 1);
--- a/jsparse.h
+++ b/jsparse.h
@@ -1,8 +1,6 @@
 #ifndef js_parse_h
 #define js_parse_h
 
-typedef enum js_AstType js_AstType;
-
 enum js_AstType
 {
 	AST_LIST,
@@ -120,7 +118,7 @@
 
 struct js_JumpList
 {
-	js_AstType type;
+	enum js_AstType type;
 	int inst;
 	js_JumpList *next;
 };
@@ -141,7 +139,7 @@
 js_Ast *jsP_parse(js_State *J, const char *filename, const char *source);
 void jsP_freeparse(js_State *J);
 
-const char *jsP_aststring(js_AstType type);
+const char *jsP_aststring(enum js_AstType type);
 void jsP_dumpsyntax(js_State *J, js_Ast *prog);
 void jsP_dumplist(js_State *J, js_Ast *prog);
 
--- a/jsproperty.c
+++ b/jsproperty.c
@@ -144,7 +144,7 @@
 }
 
 
-js_Object *jsV_newobject(js_State *J, js_Class type, js_Object *prototype)
+js_Object *jsV_newobject(js_State *J, enum js_Class type, js_Object *prototype)
 {
 	js_Object *obj = calloc(sizeof(js_Object), 1);
 	obj->gcmark = 0;
--- a/jsregexp.c
+++ b/jsregexp.c
@@ -42,7 +42,7 @@
 
 	opts = 0;
 	if (re->flags & JS_REGEXP_G) {
-		if (re->last < 0 || re->last > strlen(text)) {
+		if (re->last > strlen(text)) {
 			re->last = 0;
 			js_pushnull(J);
 			return 1;
--- a/jsrun.c
+++ b/jsrun.c
@@ -594,7 +594,7 @@
 		s = v->u.boolean ? "_True" : "_False";
 		break;
 	case JS_TOBJECT:
-		sprintf(buf, "%p", v->u.object);
+		sprintf(buf, "%p", (void*)v->u.object);
 		s = js_intern(J, buf);
 		break;
 	default:
@@ -998,7 +998,7 @@
 	const char **ST = F->strtab;
 	short *pcstart = F->code;
 	short *pc = F->code;
-	js_OpCode opcode;
+	enum js_OpCode opcode;
 	int offset;
 
 	const char *str;
@@ -1301,7 +1301,7 @@
 			ix = js_toint32(J, -2);
 			uy = js_touint32(J, -1);
 			js_pop(J, 2);
-			js_pushnumber(J, ix >> (uy & 0x1F)); break;
+			js_pushnumber(J, ix >> (uy & 0x1F));
 			break;
 
 		case OP_USHR:
@@ -1308,7 +1308,7 @@
 			ux = js_touint32(J, -2);
 			uy = js_touint32(J, -1);
 			js_pop(J, 2);
-			js_pushnumber(J, ux >> (uy & 0x1F)); break;
+			js_pushnumber(J, ux >> (uy & 0x1F));
 			break;
 
 		/* Relational operators */
--- a/jsvalue.h
+++ b/jsvalue.h
@@ -1,9 +1,6 @@
 #ifndef js_object_h
 #define js_object_h
 
-typedef enum js_Type js_Type;
-typedef enum js_Class js_Class;
-
 typedef struct js_Property js_Property;
 typedef struct js_Iterator js_Iterator;
 
@@ -36,7 +33,7 @@
 
 struct js_Value
 {
-	js_Type type;
+	enum js_Type type;
 	union {
 		int boolean;
 		double number;
@@ -55,7 +52,7 @@
 
 struct js_Object
 {
-	js_Class type;
+	enum js_Class type;
 	int extensible;
 	js_Property *properties;
 	js_Property *head, *tail; /* for enumeration */
@@ -133,7 +130,7 @@
 double jsV_stringtonumber(js_State *J, const char *string);
 
 /* jsproperty.c */
-js_Object *jsV_newobject(js_State *J, js_Class type, js_Object *prototype);
+js_Object *jsV_newobject(js_State *J, enum js_Class type, js_Object *prototype);
 js_Property *jsV_getownproperty(js_State *J, js_Object *obj, const char *name);
 js_Property *jsV_getpropertyx(js_State *J, js_Object *obj, const char *name, int *own);
 js_Property *jsV_getproperty(js_State *J, js_Object *obj, const char *name);