// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsrepr.c
// Function: reprvalue
static void reprvalue(js_State *J, js_Buffer **sb)
{
	if (js_isundefined(J, -1))
		js_puts(J, sb, "undefined");
	else if (js_isnull(J, -1))
		js_puts(J, sb, "null");
	else if (js_isboolean(J, -1))
		js_puts(J, sb, js_toboolean(J, -1) ? "true" : "false");
	else if (js_isnumber(J, -1))
		reprnum(J, sb, js_tonumber(J, -1));
	else if (js_isstring(J, -1))
		reprstr(J, sb, js_tostring(J, -1));
	else if (js_isobject(J, -1)) {
		js_Object *obj = js_toobject(J, -1);
		switch (obj->type) {
		default:
			reprobject(J, sb);
			break;
		case JS_CARRAY:
			reprarray(J, sb);
			break;
		case JS_CFUNCTION:
		case JS_CSCRIPT:
			reprfun(J, sb, obj->u.f.function);
			break;
		case JS_CCFUNCTION:
			js_puts(J, sb, "function ");
			js_puts(J, sb, obj->u.c.name);
			js_puts(J, sb, "() { [native code] }");
			break;
		case JS_CBOOLEAN:
			js_puts(J, sb, "(new Boolean(");
			js_puts(J, sb, obj->u.boolean ? "true" : "false");
			js_puts(J, sb, "))");
			break;
		case JS_CNUMBER:
			js_puts(J, sb, "(new Number(");
			reprnum(J, sb, obj->u.number);
			js_puts(J, sb, "))");
			break;
		case JS_CSTRING:
			js_puts(J, sb, "(new String(");
			reprstr(J, sb, obj->u.s.string);
			js_puts(J, sb, "))");
			break;
		case JS_CREGEXP:
			js_putc(J, sb, '/');
			js_puts(J, sb, obj->u.r.source);
			js_putc(J, sb, '/');
			if (obj->u.r.flags & JS_REGEXP_G) js_putc(J, sb, 'g');
			if (obj->u.r.flags & JS_REGEXP_I) js_putc(J, sb, 'i');
			if (obj->u.r.flags & JS_REGEXP_M) js_putc(J, sb, 'm');
			break;
		case JS_CDATE:
			{
				char buf[40];
				js_puts(J, sb, "(new Date(");
				js_puts(J, sb, jsV_numbertostring(J, buf, obj->u.number));
				js_puts(J, sb, "))");
			}
			break;
		case JS_CERROR:
			js_puts(J, sb, "(new ");
			js_getproperty(J, -1, "name");
			js_puts(J, sb, js_tostring(J, -1));
			js_pop(J, 1);
			js_putc(J, sb, '(');
			if (js_hasproperty(J, -1, "message")) {
				reprvalue(J, sb);
				js_pop(J, 1);
			}
			js_puts(J, sb, "))");
			break;
		case JS_CMATH:
			js_puts(J, sb, "Math");
			break;
		case JS_CJSON:
			js_puts(J, sb, "JSON");
			break;
		case JS_CITERATOR:
			js_puts(J, sb, "[iterator ");
			break;
		case JS_CUSERDATA:
			js_puts(J, sb, "[userdata ");
			js_puts(J, sb, obj->u.user.tag);
			js_putc(J, sb, ']');
			break;
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl 0x140(%rdi), %r15d
leal -0x1(%r15), %ebp
testl %r15d, %r15d
jle 0x14134
movl %ebp, %eax
shlq $0x4, %rax
addq 0x148(%rbx), %rax
jmp 0x1413b
leaq 0x2c2bd(%rip), %rax     # 0x403f8
cmpb $0x1, 0xf(%rax)
jne 0x14170
movb $0x75, %al
movl $0x1, %r15d
leaq 0x210ed(%rip), %r12     # 0x3523d
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15,%r12), %al
incq %r15
cmpq $0xa, %r15
jne 0x14150
jmp 0x1424e
testl %r15d, %r15d
jle 0x14184
movl %ebp, %eax
shlq $0x4, %rax
addq 0x148(%rbx), %rax
jmp 0x1418b
leaq 0x2c26d(%rip), %rax     # 0x403f8
cmpb $0x2, 0xf(%rax)
jne 0x141c3
movb $0x6e, %al
xorl %r12d, %r12d
leaq 0x209de(%rip), %r15     # 0x34b7b
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x4, %r13
jne 0x1419d
jmp 0x1424e
testl %r15d, %r15d
jle 0x141d7
movl %ebp, %eax
shlq $0x4, %rax
addq 0x148(%rbx), %rax
jmp 0x141de
leaq 0x2c21a(%rip), %rax     # 0x403f8
cmpb $0x3, 0xf(%rax)
jne 0x141f8
testl %r15d, %r15d
jle 0x1420c
movl %ebp, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
jmp 0x14213
testl %r15d, %r15d
jle 0x1425d
movl %ebp, %eax
shlq $0x4, %rax
addq 0x148(%rbx), %rax
jmp 0x14264
leaq 0x2c1e5(%rip), %rsi     # 0x403f8
callq 0x150c0
testl %eax, %eax
leaq 0x1f87d(%rip), %rax     # 0x33a9e
leaq 0x1f871(%rip), %r15     # 0x33a99
cmoveq %rax, %r15
movb (%r15), %al
testb %al, %al
je 0x1424e
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x14236
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2c194(%rip), %rax     # 0x403f8
cmpb $0x4, 0xf(%rax)
jne 0x1427e
testl %r15d, %r15d
jle 0x142b8
movl %ebp, %esi
shlq $0x4, %rsi
addq 0x148(%rbx), %rsi
jmp 0x142bf
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x14d5f
testl %eax, %eax
je 0x142e0
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x14963
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x26a50
leaq 0x2c139(%rip), %rsi     # 0x403f8
movq %rbx, %rdi
callq 0x1514c
movq %rbx, %rdi
movq %r14, %rsi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x269b5
testl %r15d, %r15d
jle 0x142f4
movl %ebp, %eax
shlq $0x4, %rax
addq 0x148(%rbx), %rax
jmp 0x142fb
leaq 0x2c0fd(%rip), %rax     # 0x403f8
cmpb $0x7, 0xf(%rax)
jne 0x1424e
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11c37
movq %rax, %r15
movl (%rax), %eax
decl %eax
cmpl $0xe, %eax
ja 0x1488d
leaq 0x17423(%rip), %rcx     # 0x2b74c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x20(%r15), %rdx
movq %rbx, %rdi
movq %r14, %rsi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2721f
movb $0x28, %al
movl $0x1, %r12d
leaq 0x20bcf(%rip), %r13     # 0x34f2d
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r12,%r13), %al
incq %r12
cmpq $0xb, %r12
jne 0x1435e
movsd 0x20(%r15), %xmm0
movq %rsp, %rsi
callq 0x1303a
movq %rax, %r15
movb (%rax), %al
testb %al, %al
je 0x143ab
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x14393
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x20b59(%rip), %r15     # 0x34f10
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x143b7
jmp 0x1424e
movb $0x5b, %al
movl $0x1, %r12d
leaq 0x20b5d(%rip), %r13     # 0x34f49
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r12,%r13), %al
incq %r12
cmpq $0xb, %r12
jne 0x143ec
movq 0x20(%r15), %r15
movb (%r15), %al
testb %al, %al
je 0x1442d
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x14415
movq %rbx, %rdi
movq %r14, %rsi
movl $0x5d, %edx
jmp 0x14566
movb $0x28, %al
movl $0x1, %r12d
leaq 0x20ad4(%rip), %r13     # 0x34f20
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r12,%r13), %al
incq %r12
cmpq $0xd, %r12
jne 0x1444c
movq 0x28(%r15), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26a50
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x20a8e(%rip), %r15     # 0x34f10
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x14482
jmp 0x1424e
movb $0x4d, %al
xorl %r12d, %r12d
leaq 0x1eee5(%rip), %r15     # 0x33399
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x4, %r13
jne 0x144b4
jmp 0x1424e
movq %rbx, %rdi
movq %r14, %rsi
movl $0x2f, %edx
callq 0xe0bc
movq 0x28(%r15), %r12
movb (%r12), %al
testb %al, %al
je 0x14512
incq %r12
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r12), %al
incq %r12
testb %al, %al
jne 0x144f9
movq %rbx, %rdi
movq %r14, %rsi
movl $0x2f, %edx
callq 0xe0bc
testb $0x1, 0x30(%r15)
je 0x14539
movq %rbx, %rdi
movq %r14, %rsi
movl $0x67, %edx
callq 0xe0bc
testb $0x2, 0x30(%r15)
je 0x14550
movq %rbx, %rdi
movq %r14, %rsi
movl $0x69, %edx
callq 0xe0bc
testb $0x4, 0x30(%r15)
je 0x1424e
movq %rbx, %rdi
movq %r14, %rsi
movl $0x6d, %edx
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xe0bc
movb $0x28, %al
movl $0x1, %r12d
leaq 0x2097a(%rip), %r13     # 0x34f02
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r12,%r13), %al
incq %r12
cmpq $0xe, %r12
jne 0x14588
cmpl $0x0, 0x20(%r15)
leaq 0x1f4ef(%rip), %rax     # 0x33a9e
leaq 0x1f4e3(%rip), %r15     # 0x33a99
cmoveq %rax, %r15
movb (%r15), %al
testb %al, %al
je 0x145dc
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x145c4
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x20928(%rip), %r15     # 0x34f10
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x145e8
jmp 0x1424e
movb $0x28, %al
movl $0x1, %r12d
leaq 0x208f6(%rip), %r13     # 0x34f13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r12,%r13), %al
incq %r12
cmpq $0xd, %r12
jne 0x1461d
movsd 0x20(%r15), %xmm0
movq %rbx, %rdi
movq %r14, %rsi
callq 0x269b5
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x208bb(%rip), %r15     # 0x34f10
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x14655
jmp 0x1424e
movb $0x28, %al
movl $0x1, %r15d
leaq 0x208ae(%rip), %r12     # 0x34f38
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15,%r12), %al
incq %r15
cmpq $0x6, %r15
jne 0x1468a
leaq 0x1ea8e(%rip), %rdx     # 0x3313a
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4032
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x14963
movq %rax, %r15
movb (%rax), %al
testb %al, %al
je 0x146ea
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x146d2
movl 0x140(%rbx), %ecx
movl 0x144(%rbx), %eax
leal -0x1(%rcx), %edx
movl %edx, 0x140(%rbx)
cmpl %eax, %ecx
jle 0x148a6
movq %rbx, %rdi
movq %r14, %rsi
movl $0x28, %edx
callq 0xe0bc
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x11c37
leaq 0x1fba4(%rip), %rdx     # 0x342cf
movq %rbx, %rdi
movq %rax, %rsi
callq 0x16778
testl %eax, %eax
je 0x14762
movq %rbx, %rdi
movq %r14, %rsi
callq 0x14101
movl 0x140(%rbx), %ecx
movl 0x144(%rbx), %eax
leal -0x1(%rcx), %edx
movl %edx, 0x140(%rbx)
cmpl %eax, %ecx
jle 0x148a6
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x207a2(%rip), %r15     # 0x34f10
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x1476e
jmp 0x1424e
movb $0x5b, %al
movl $0x1, %r15d
leaq 0x2079b(%rip), %r12     # 0x34f3e
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15,%r12), %al
incq %r15
cmpq $0xb, %r15
jne 0x147a3
jmp 0x1424e
movb $0x4a, %al
xorl %r12d, %r12d
leaq 0x1e949(%rip), %r15     # 0x33118
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x4, %r13
jne 0x147cf
jmp 0x1424e
movq %rbx, %rdi
movq %r14, %rsi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2703c
movb $0x66, %al
movl $0x1, %r12d
leaq 0x1fae8(%rip), %r13     # 0x34305
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r12,%r13), %al
incq %r12
cmpq $0xa, %r12
jne 0x1481d
movq 0x20(%r15), %r15
movb (%r15), %al
testb %al, %al
je 0x1485e
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x14846
movb $0x28, %al
movl $0x1, %r15d
leaq 0x1fab4(%rip), %r12     # 0x34321
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe0bc
movb (%r15,%r12), %al
incq %r15
cmpq $0x15, %r15
jne 0x1486d
jmp 0x1424e
movq %rbx, %rdi
movq %r14, %rsi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x26d1c
movl %eax, 0x140(%rbx)
leaq 0x1eebb(%rip), %rsi     # 0x3376e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc939