// File: /workspace/github_c_makefile_star2_O1/ccxvii[P]mujs/./jsobject.c
// Function: Op_toString
static void Op_toString(js_State *J)
{
	if (js_isundefined(J, 0))
		js_pushliteral(J, "[object Undefined]");
	else if (js_isnull(J, 0))
		js_pushliteral(J, "[object Null]");
	else {
		js_Object *self = js_toobject(J, 0);
		switch (self->type) {
		case JS_COBJECT: js_pushliteral(J, "[object Object]"); break;
		case JS_CARRAY: js_pushliteral(J, "[object Array]"); break;
		case JS_CFUNCTION: js_pushliteral(J, "[object Function]"); break;
		case JS_CSCRIPT: js_pushliteral(J, "[object Function]"); break;
		case JS_CCFUNCTION: js_pushliteral(J, "[object Function]"); break;
		case JS_CERROR: js_pushliteral(J, "[object Error]"); break;
		case JS_CBOOLEAN: js_pushliteral(J, "[object Boolean]"); break;
		case JS_CNUMBER: js_pushliteral(J, "[object Number]"); break;
		case JS_CSTRING: js_pushliteral(J, "[object String]"); break;
		case JS_CREGEXP: js_pushliteral(J, "[object RegExp]"); break;
		case JS_CDATE: js_pushliteral(J, "[object Date]"); break;
		case JS_CMATH: js_pushliteral(J, "[object Math]"); break;
		case JS_CJSON: js_pushliteral(J, "[object JSON]"); break;
		case JS_CARGUMENTS: js_pushliteral(J, "[object Arguments]"); break;
		case JS_CITERATOR: js_pushliteral(J, "[object Iterator]"); break;
		case JS_CUSERDATA:
			js_pushliteral(J, "[object ");
			js_pushliteral(J, self->u.user.tag);
			js_concat(J);
			js_pushliteral(J, "]");
			js_concat(J);
			break;
		}
	}
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movslq 0x144(%rdi), %rax
leaq 0x2fb3d(%rip), %rcx     # 0x403f8
testq %rax, %rax
js 0x108d6
cmpl 0x140(%rbx), %eax
jge 0x108d6
movq %rax, %rcx
shlq $0x4, %rcx
addq 0x148(%rbx), %rcx
cmpb $0x1, 0xf(%rcx)
jne 0x108e5
leaq 0x24148(%rip), %rsi     # 0x34a2b
jmp 0x10913
leaq 0x2fb0c(%rip), %rcx     # 0x403f8
testl %eax, %eax
js 0x10906
cmpl 0x140(%rbx), %eax
jge 0x10906
movq %rax, %rcx
shlq $0x4, %rcx
addq 0x148(%rbx), %rcx
cmpb $0x2, 0xf(%rcx)
jne 0x10922
leaq 0x2412b(%rip), %rsi     # 0x34a3e
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x67c1
leaq 0x2facf(%rip), %rsi     # 0x403f8
testl %eax, %eax
js 0x10943
cmpl 0x140(%rbx), %eax
jge 0x10943
shlq $0x4, %rax
addq 0x148(%rbx), %rax
movq %rax, %rsi
movq %rbx, %rdi
callq 0x15489
movq %rax, %r14
movl (%rax), %eax
cmpq $0xf, %rax
ja 0x10a3b
leaq 0x1ad57(%rip), %rcx     # 0x2b6b8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x240fa(%rip), %rsi     # 0x34a6b
jmp 0x10913
leaq 0x24190(%rip), %rsi     # 0x34b0a
jmp 0x10913
leaq 0x24158(%rip), %rsi     # 0x34adb
jmp 0x10913
leaq 0x2415d(%rip), %rsi     # 0x34ae9
jmp 0x10913
leaq 0x24128(%rip), %rsi     # 0x34abd
jmp 0x10913
leaq 0x2417b(%rip), %rsi     # 0x34b1c
movq %rbx, %rdi
callq 0x67c1
movq 0x20(%r14), %rsi
movq %rbx, %rdi
callq 0x67c1
movq %rbx, %rdi
callq 0x1ac43
leaq 0x247d7(%rip), %rsi     # 0x3519b
movq %rbx, %rdi
callq 0x67c1
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x1ac43
leaq 0x2406a(%rip), %rsi     # 0x34a4c
jmp 0x10913
leaq 0x2406e(%rip), %rsi     # 0x34a5c
jmp 0x10913
leaq 0x240a3(%rip), %rsi     # 0x34a9d
jmp 0x10913
leaq 0x24077(%rip), %rsi     # 0x34a7d
jmp 0x10913
leaq 0x240e5(%rip), %rsi     # 0x34af7
jmp 0x10913
leaq 0x2406e(%rip), %rsi     # 0x34a8c
jmp 0x10913
leaq 0x240a3(%rip), %rsi     # 0x34acd
jmp 0x10913
leaq 0x24077(%rip), %rsi     # 0x34aad
jmp 0x10913
addq $0x8, %rsp
popq %rbx
popq %r14
retq