JSCell* JIT_OPERATION operationCallStringConstructorOnCell(ExecState* exec, JSCell* cell) { VM& vm = exec->vm(); NativeCallFrameTracer tracer(&vm, exec); return stringConstructor(exec, cell); }
JSCell* JIT_OPERATION operationCallStringConstructor(ExecState* exec, EncodedJSValue value) { VM& vm = exec->vm(); NativeCallFrameTracer tracer(&vm, exec); return stringConstructor(exec, JSValue::decode(value)); }
int main (int argc, char **argv) { int idx; register char *progname; atexit (cleanup); signal (SIGINT, (void (*)(int))abnormal); progname = getcwd (orgdir, _MAX_PATH - 1); /* keeps the compiler happy */ if (argc == 1) { copyright("ICMAKE Binary Makefile Executor", version, release); progname = program_name(argv[0]); printf ("This program is run as a child process of icmake.\n" "Usage: %s [-t] bimfile\n" "where: -t - option indicating that 'bimfile' must be\n" " removed on exit.\n" " bimfile - binary makefile to execute.\n\n" , progname); return 1; } if (!strcmp(argv[1], "-t")) /* -t option found */ { argv[1] = argv[0]; /* remove the -t argument */ argv++; argc--; bimname = argv[1]; /* define temporary name */ } if (!(infile = fopen (argv [1], READBINARY))) error("cannot open bimfile '%s' to read", argv[1]); headerp = readheader(infile, (size_t)version[0]); /* return array of global vars */ if ((INT16)(nvar = getvar(infile, headerp, &var)) == -1) error("invalid macro file, cannot read variable section"); /* global strings haven't been initialized by the compiler yet, */ /* so that's icm-exec's job */ for (idx = 0; idx < nvar; ++idx) { if (typeValue(var + idx) == e_str) var[idx] = *stringConstructor(); } fseek(infile, headerp->offset[3], SEEK_SET); { LISTVAR_ env = *listConstructor(); environ2list(&env); push(&env); /* envp: 3rd arg of main() */ listDestructor(&env); } { LISTVAR_ args = *listConstructor_s_cPP((size_t)argc, argv); push(&args); /* argv: 2nd arg of main() */ listDestructor(&args); } { INTVAR_ nArgs = *intConstructor_i(argc - 1); push(&nArgs); /* argc: 1st arg of main() */ } process(); return retval; }