// File: /workspace/github_c_makefile_star2_O3/ArtifexSoftware[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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl 0x140(%rdi), %eax
testl %eax, %eax
jle 0x13cfa
decl %eax
movq 0x148(%rbx), %rsi
shlq $0x4, %rax
movzbl 0xf(%rsi,%rax), %r15d
leal -0x1(%r15), %ecx
cmpl $0x3, %ecx
ja 0x13dca
leaq 0x17a60(%rip), %rdx     # 0x2b74c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
addq %rax, %rsi
jmp 0x13d52
movzbl 0x2c705(%rip), %r15d    # 0x40407
leal -0x1(%r15), %eax
cmpl $0x3, %eax
ja 0x13dca
leaq 0x2c6e2(%rip), %rsi     # 0x403f8
leaq 0x17a3f(%rip), %rcx     # 0x2b75c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb $0x75, %al
movl $0x1, %r15d
leaq 0x21538(%rip), %r12     # 0x3526d
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15,%r12), %al
incq %r15
cmpq $0xa, %r15
jne 0x13d35
jmp 0x13dbc
callq 0x14be9
testl %eax, %eax
leaq 0x1fd6e(%rip), %rax     # 0x33ace
leaq 0x1fd62(%rip), %r15     # 0x33ac9
cmoveq %rax, %r15
movb (%r15), %al
testb %al, %al
je 0x13dbc
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x13d75
jmp 0x13dbc
movb $0x6e, %al
xorl %r12d, %r12d
leaq 0x20e10(%rip), %r15     # 0x34bab
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x4, %r13
jne 0x13d9b
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x14888
testl %eax, %eax
je 0x13e26
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1448c
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x266ff
addq %rax, %rsi
movq %rbx, %rdi
callq 0x14c75
movq %rbx, %rdi
movq %r14, %rsi
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x26664
cmpb $0x7, %r15b
jne 0x13dbc
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1189f
movq %rax, %r15
movl (%rax), %eax
decl %eax
cmpl $0xe, %eax
ja 0x143b7
leaq 0x1791c(%rip), %rcx     # 0x2b76c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x20(%r15), %rdx
movq %rbx, %rdi
movq %r14, %rsi
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x26ec9
movb $0x28, %al
movl $0x1, %r12d
leaq 0x210d9(%rip), %r13     # 0x34f5d
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r12,%r13), %al
incq %r12
cmpq $0xb, %r12
jne 0x13e84
movsd 0x20(%r15), %xmm0
movq %rsp, %rsi
callq 0x12c04
movq %rax, %r15
movb (%rax), %al
testb %al, %al
je 0x13ed1
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x13eb9
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x21063(%rip), %r15     # 0x34f40
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x13edd
jmp 0x13dbc
movb $0x5b, %al
movl $0x1, %r12d
leaq 0x21067(%rip), %r13     # 0x34f79
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r12,%r13), %al
incq %r12
cmpq $0xb, %r12
jne 0x13f12
movq 0x20(%r15), %r15
movb (%r15), %al
testb %al, %al
je 0x13f53
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x13f3b
movq %rbx, %rdi
movq %r14, %rsi
movl $0x5d, %edx
jmp 0x14092
movb $0x28, %al
movl $0x1, %r12d
leaq 0x20fde(%rip), %r13     # 0x34f50
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r12,%r13), %al
incq %r12
cmpq $0xd, %r12
jne 0x13f72
movq 0x28(%r15), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x266ff
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x20f98(%rip), %r15     # 0x34f40
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x13fa8
jmp 0x13dbc
movb $0x4d, %al
xorl %r12d, %r12d
leaq 0x1f3ef(%rip), %r15     # 0x333c9
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x4, %r13
jne 0x13fda
jmp 0x13dbc
movq %rbx, %rdi
movq %r14, %rsi
movl $0x2f, %edx
callq 0xdda1
movq 0x28(%r15), %r12
movb (%r12), %al
testb %al, %al
je 0x14038
incq %r12
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r12), %al
incq %r12
testb %al, %al
jne 0x1401f
movq %rbx, %rdi
movq %r14, %rsi
movl $0x2f, %edx
callq 0xdda1
movzwl 0x30(%r15), %eax
testb $0x1, %al
je 0x14066
movq %rbx, %rdi
movq %r14, %rsi
movl $0x67, %edx
callq 0xdda1
movzwl 0x30(%r15), %eax
testb $0x2, %al
je 0x1407f
movq %rbx, %rdi
movq %r14, %rsi
movl $0x69, %edx
callq 0xdda1
movzwl 0x30(%r15), %eax
testb $0x4, %al
je 0x13dbc
movq %rbx, %rdi
movq %r14, %rsi
movl $0x6d, %edx
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0xdda1
movb $0x28, %al
movl $0x1, %r12d
leaq 0x20e7f(%rip), %r13     # 0x34f32
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r12,%r13), %al
incq %r12
cmpq $0xe, %r12
jne 0x140b3
cmpl $0x0, 0x20(%r15)
leaq 0x1f9f4(%rip), %rax     # 0x33ace
leaq 0x1f9e8(%rip), %r15     # 0x33ac9
cmoveq %rax, %r15
movb (%r15), %al
testb %al, %al
je 0x14107
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x140ef
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x20e2d(%rip), %r15     # 0x34f40
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x14113
jmp 0x13dbc
movb $0x28, %al
movl $0x1, %r12d
leaq 0x20dfb(%rip), %r13     # 0x34f43
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r12,%r13), %al
incq %r12
cmpq $0xd, %r12
jne 0x14148
movsd 0x20(%r15), %xmm0
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26664
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x20dc0(%rip), %r15     # 0x34f40
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x14180
jmp 0x13dbc
movb $0x28, %al
movl $0x1, %r15d
leaq 0x20db3(%rip), %r12     # 0x34f68
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15,%r12), %al
incq %r15
cmpq $0x6, %r15
jne 0x141b5
leaq 0x1ef93(%rip), %rdx     # 0x3316a
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x3fd2
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1448c
movq %rax, %r15
movb (%rax), %al
testb %al, %al
je 0x14215
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x141fd
movl 0x140(%rbx), %ecx
movl 0x144(%rbx), %eax
leal -0x1(%rcx), %edx
movl %edx, 0x140(%rbx)
cmpl %eax, %ecx
jle 0x143cf
movq %rbx, %rdi
movq %r14, %rsi
movl $0x28, %edx
callq 0xdda1
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x1189f
leaq 0x200a9(%rip), %rdx     # 0x342ff
movq %rbx, %rdi
movq %rax, %rsi
callq 0x162b5
testl %eax, %eax
je 0x1428d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x13ca8
movl 0x140(%rbx), %ecx
movl 0x144(%rbx), %eax
leal -0x1(%rcx), %edx
movl %edx, 0x140(%rbx)
cmpl %eax, %ecx
jle 0x143cf
movb $0x29, %al
xorl %r12d, %r12d
leaq 0x20ca7(%rip), %r15     # 0x34f40
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x2, %r13
jne 0x14299
jmp 0x13dbc
movb $0x5b, %al
movl $0x1, %r15d
leaq 0x20ca0(%rip), %r12     # 0x34f6e
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15,%r12), %al
incq %r15
cmpq $0xb, %r15
jne 0x142ce
jmp 0x13dbc
movb $0x4a, %al
xorl %r12d, %r12d
leaq 0x1ee4e(%rip), %r15     # 0x33148
leaq 0x1(%r12), %r13
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb 0x1(%r12,%r15), %al
movq %r13, %r12
cmpq $0x4, %r13
jne 0x142fa
jmp 0x13dbc
movq %rbx, %rdi
movq %r14, %rsi
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x26ce6
movb $0x66, %al
movl $0x1, %r12d
leaq 0x1ffee(%rip), %r13     # 0x34335
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r12,%r13), %al
incq %r12
cmpq $0xa, %r12
jne 0x14347
movq 0x20(%r15), %r15
movb (%r15), %al
testb %al, %al
je 0x14388
incq %r15
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15), %al
incq %r15
testb %al, %al
jne 0x14370
movb $0x28, %al
movl $0x1, %r15d
leaq 0x1ffba(%rip), %r12     # 0x34351
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdda1
movb (%r15,%r12), %al
incq %r15
cmpq $0x15, %r15
jne 0x14397
jmp 0x13dbc
movq %rbx, %rdi
movq %r14, %rsi
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x269c8
movl %eax, 0x140(%rbx)
leaq 0x1f3c2(%rip), %rsi     # 0x3379e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xc666