// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x15100
cmpl $0x0, %eax
je 0x10621
movq -0x8(%rbp), %rdi
leaq 0x2caca(%rip), %rsi     # 0x3d0e1
callq 0x66d0
jmp 0x107f3
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x15130
cmpl $0x0, %eax
je 0x10646
movq -0x8(%rbp), %rdi
leaq 0x2cab8(%rip), %rsi     # 0x3d0f4
callq 0x66d0
jmp 0x107f1
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x11760
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x18(%rbp)
subq $0xf, %rax
ja 0x107ef
movq -0x18(%rbp), %rax
leaq 0x2310c(%rip), %rcx     # 0x33780
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
leaq 0x2ca7a(%rip), %rsi     # 0x3d102
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca75(%rip), %rsi     # 0x3d112
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca6f(%rip), %rsi     # 0x3d121
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca5a(%rip), %rsi     # 0x3d121
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca45(%rip), %rsi     # 0x3d121
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca42(%rip), %rsi     # 0x3d133
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca3c(%rip), %rsi     # 0x3d142
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca38(%rip), %rsi     # 0x3d153
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca33(%rip), %rsi     # 0x3d163
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca2e(%rip), %rsi     # 0x3d173
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca29(%rip), %rsi     # 0x3d183
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca22(%rip), %rsi     # 0x3d191
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca1e(%rip), %rsi     # 0x3d19f
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca1a(%rip), %rsi     # 0x3d1ad
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca1b(%rip), %rsi     # 0x3d1c0
callq 0x66d0
jmp 0x107ef
movq -0x8(%rbp), %rdi
leaq 0x2ca1b(%rip), %rsi     # 0x3d1d2
callq 0x66d0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rsi
callq 0x66d0
movq -0x8(%rbp), %rdi
callq 0x1bdd0
movq -0x8(%rbp), %rdi
leaq 0x2d084(%rip), %rsi     # 0x3d865
callq 0x66d0
movq -0x8(%rbp), %rdi
callq 0x1bdd0
jmp 0x107f1
jmp 0x107f3
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)