ref: be3ed5250c8505b8d544587e92b31924b134e678
parent: e45115faeee4928b5fa103eaff55b6ed804899a8
author: Tor Andersson <tor@ccxvii.net>
date: Mon Feb 10 18:51:34 EST 2014
Some cleanups.
--- a/jsbuiltin.c
+++ b/jsbuiltin.c
@@ -200,10 +200,10 @@
jsB_initnumber(J);
jsB_initstring(J);
jsB_initregexp(J);
+ jsB_initdate(J);
jsB_initerror(J);
jsB_initmath(J);
jsB_initjson(J);
- jsB_initdate(J);
/* Initialize the global object */
js_pushnumber(J, NAN);
--- a/jscompile.h
+++ b/jscompile.h
@@ -32,14 +32,15 @@
OP_NULL,
OP_TRUE,
OP_FALSE,
+
OP_THIS,
OP_GLOBAL,
OP_CURRENT, /* currently executing function object */
- OP_INITLOCAL, /* <value> -N- */
- OP_GETLOCAL, /* -N- <value> */
- OP_SETLOCAL, /* <value> -N- <value> */
- OP_DELLOCAL, /* -N- false */
+ OP_INITLOCAL, /* <value> -K- */
+ OP_GETLOCAL, /* -K- <value> */
+ OP_SETLOCAL, /* <value> -K- <value> */
+ OP_DELLOCAL, /* -K- false */
OP_INITVAR, /* <value> -S- */
OP_DEFVAR, /* -S- */
@@ -64,7 +65,7 @@
OP_DELPROP_S, /* <obj> -S- <success> */
OP_ITERATOR, /* <obj> -- <iobj> */
- OP_NEXTITER, /* <iobj> -- <iobj> <name> true || false */
+ OP_NEXTITER, /* <iobj> -- ( <iobj> <name> true | false ) */
OP_CALL, /* <closure> <this> <args...> -(numargs)- <returnvalue> */
OP_NEW, /* <closure> <args...> -(numargs)- <returnvalue> */
--- a/jsdump.c
+++ b/jsdump.c
@@ -716,20 +716,14 @@
short *end = F->code + F->codelen;
int i;
- printf("function %p %s\n", F, F->name);
+ printf("%s(%d)\n", F->name, F->numparams);
+ if (F->lightweight) printf("\tlightweight\n");
+ if (F->arguments) printf("\targuments\n");
printf("\tsource %s:%d\n", F->filename, F->line);
- printf("\tlightweight:%d\n", F->lightweight);
- printf("\tparameters:%d\n", F->numparams);
- printf("\targuments:%d\n", F->arguments);
+ for (i = 0; i < F->funlen; ++i)
+ printf("\tfunction %d %s\n", i, F->funtab[i]->name);
for (i = 0; i < F->varlen; ++i)
printf("\tlocal %d %s\n", i + 1, F->vartab[i]);
- for (i = 0; i < F->funlen; ++i)
- printf("\tfunction %p %s\n", F->funtab[i], F->funtab[i]->name);
- for (i = 0; i < F->strlen; ++i) {
- ps("\tstring "); pstr(F->strtab[i]); ps("\n");
- }
- for (i = 0; i < F->numlen; ++i)
- printf("\tnumber %.9g\n", F->numtab[i]);
printf("{\n");
while (p < end) {
@@ -739,9 +733,6 @@
ps(opname[c]);
switch (c) {
- case OP_CLOSURE:
- printf(" %p", F->funtab[*p++]);
- break;
case OP_NUMBER:
printf(" %.9g", F->numtab[*p++]);
break;
@@ -769,14 +760,11 @@
ps(F->strtab[*p++]);
break;
+ case OP_CLOSURE:
case OP_INITLOCAL:
case OP_GETLOCAL:
case OP_SETLOCAL:
case OP_DELLOCAL:
- printf(" %d (%s)", *p, F->vartab[*p-1]);
- ++p;
- break;
-
case OP_NUMBER_N:
case OP_INITPROP_N:
case OP_CALL:
@@ -796,6 +784,7 @@
for (i = 0; i < F->funlen; ++i) {
if (F->funtab[i] != F) {
+ printf("function %d ", i);
jsC_dumpfunction(J, F->funtab[i]);
}
}
--- a/jsrun.c
+++ b/jsrun.c
@@ -980,7 +980,7 @@
void js_trap(js_State *J, int pc)
{
js_Function *F = STACK[BOT-1].u.object->u.f.function;
- printf("trap at %d in ", pc);
+ printf("trap at %d in function ", pc);
jsC_dumpfunction(J, F);
jsR_dumpstack(J);
jsR_dumpenvironment(J, J->E, 0);