// File: /workspace/github_c_makefile_star2_O2/ArtifexSoftware[P]mujs/./jsbuiltin.c
// Function: jsB_init
void jsB_init(js_State *J)
{
	/* Create the prototype objects here, before the constructors */
	J->Object_prototype = jsV_newobject(J, JS_COBJECT, NULL);
	J->Array_prototype = jsV_newobject(J, JS_CARRAY, J->Object_prototype);
	J->Function_prototype = jsV_newobject(J, JS_CCFUNCTION, J->Object_prototype);
	J->Boolean_prototype = jsV_newobject(J, JS_CBOOLEAN, J->Object_prototype);
	J->Number_prototype = jsV_newobject(J, JS_CNUMBER, J->Object_prototype);
	J->String_prototype = jsV_newobject(J, JS_CSTRING, J->Object_prototype);
	J->Date_prototype = jsV_newobject(J, JS_CDATE, J->Object_prototype);

	J->RegExp_prototype = jsV_newobject(J, JS_CREGEXP, J->Object_prototype);
	J->RegExp_prototype->u.r.prog = js_regcompx(J->alloc, J->actx, "(?:)", 0, NULL);
	J->RegExp_prototype->u.r.source = js_strdup(J, "(?:)");

	/* All the native error types */
	J->Error_prototype = jsV_newobject(J, JS_CERROR, J->Object_prototype);
	J->EvalError_prototype = jsV_newobject(J, JS_CERROR, J->Error_prototype);
	J->RangeError_prototype = jsV_newobject(J, JS_CERROR, J->Error_prototype);
	J->ReferenceError_prototype = jsV_newobject(J, JS_CERROR, J->Error_prototype);
	J->SyntaxError_prototype = jsV_newobject(J, JS_CERROR, J->Error_prototype);
	J->TypeError_prototype = jsV_newobject(J, JS_CERROR, J->Error_prototype);
	J->URIError_prototype = jsV_newobject(J, JS_CERROR, J->Error_prototype);

	/* Create the constructors and fill out the prototype objects */
	jsB_initobject(J);
	jsB_initarray(J);
	jsB_initfunction(J);
	jsB_initboolean(J);
	jsB_initnumber(J);
	jsB_initstring(J);
	jsB_initregexp(J);
	jsB_initdate(J);
	jsB_initerror(J);
	jsB_initmath(J);
	jsB_initjson(J);

	/* Initialize the global object */
	js_pushnumber(J, NAN);
	js_defglobal(J, "NaN", JS_READONLY | JS_DONTENUM | JS_DONTCONF);

	js_pushnumber(J, INFINITY);
	js_defglobal(J, "Infinity", JS_READONLY | JS_DONTENUM | JS_DONTCONF);

	js_pushundefined(J);
	js_defglobal(J, "undefined", JS_READONLY | JS_DONTENUM | JS_DONTCONF);

	jsB_globalf(J, "parseInt", jsB_parseInt, 1);
	jsB_globalf(J, "parseFloat", jsB_parseFloat, 1);
	jsB_globalf(J, "isNaN", jsB_isNaN, 1);
	jsB_globalf(J, "isFinite", jsB_isFinite, 1);

	jsB_globalf(J, "decodeURI", jsB_decodeURI, 1);
	jsB_globalf(J, "decodeURIComponent", jsB_decodeURIComponent, 1);
	jsB_globalf(J, "encodeURI", jsB_encodeURI, 1);
	jsB_globalf(J, "encodeURIComponent", jsB_encodeURIComponent, 1);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
xorl %esi, %esi
xorl %edx, %edx
callq 0x5d6b
movq %rax, 0x90(%rbx)
pushq $0x1
popq %rsi
movq %rbx, %rdi
movq %rax, %rdx
callq 0x5d6b
movq %rax, 0x98(%rbx)
movq 0x90(%rbx), %rdx
pushq $0x4
popq %rsi
movq %rbx, %rdi
callq 0x5d6b
movq %rax, 0xa0(%rbx)
movq 0x90(%rbx), %rdx
pushq $0x6
popq %rsi
movq %rbx, %rdi
callq 0x5d6b
movq %rax, 0xa8(%rbx)
movq 0x90(%rbx), %rdx
pushq $0x7
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x5d6b
movq %rax, 0xb0(%rbx)
movq 0x90(%rbx), %rdx
pushq $0x8
popq %rsi
movq %rbx, %rdi
callq 0x5d6b
movq %rax, 0xb8(%rbx)
movq 0x90(%rbx), %rdx
pushq $0xa
popq %rsi
movq %rbx, %rdi
callq 0x5d6b
movq %rax, 0xc8(%rbx)
movq 0x90(%rbx), %rdx
pushq $0x9
popq %rsi
movq %rbx, %rdi
callq 0x5d6b
movq %rax, 0xc0(%rbx)
movq (%rbx), %rsi
movq 0x10(%rbx), %rdi
leaq 0x220fb(%rip), %r14     # 0x27c22
movq %r14, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x5dd4
movq 0xc0(%rbx), %rcx
movq %rax, 0x20(%rcx)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x615c
movq 0xc0(%rbx), %rcx
movq %rax, 0x28(%rcx)
movq 0x90(%rbx), %rdx
pushq $0x5
popq %r14
movq %rbx, %rdi
movl %r14d, %esi
callq 0x5d6b
movq %rax, 0xd0(%rbx)
movq %rbx, %rdi
movl %r14d, %esi
movq %rax, %rdx
callq 0x5d6b
movq %rax, 0xd8(%rbx)
movq 0xd0(%rbx), %rdx
movq %rbx, %rdi
movl %r14d, %esi
callq 0x5d6b
movq %rax, 0xe0(%rbx)
movq 0xd0(%rbx), %rdx
movq %rbx, %rdi
movl %r14d, %esi
callq 0x5d6b
movq %rax, 0xe8(%rbx)
movq 0xd0(%rbx), %rdx
movq %rbx, %rdi
movl %r14d, %esi
callq 0x5d6b
movq %rax, 0xf0(%rbx)
movq 0xd0(%rbx), %rdx
movq %rbx, %rdi
movl %r14d, %esi
callq 0x5d6b
movq %rax, 0xf8(%rbx)
movq 0xd0(%rbx), %rdx
movq %rbx, %rdi
movl %r14d, %esi
callq 0x5d6b
movq %rax, 0x100(%rbx)
movq %rbx, %rdi
callq 0x6193
movq %rbx, %rdi
callq 0x4026
movq %rbx, %rdi
callq 0x63b6
movq %rbx, %rdi
callq 0x5836
movq %rbx, %rdi
callq 0x64a6
movq %rbx, %rdi
callq 0x65ff
movq %rbx, %rdi
callq 0x6857
movq %rbx, %rdi
callq 0x68eb
movq %rbx, %rdi
callq 0x6db6
movq %rbx, %rdi
callq 0x6ff2
movq %rbx, %rdi
callq 0x72cb
movsd 0x1a7b4(%rip), %xmm0    # 0x20418
movq %rbx, %rdi
callq 0x3f9a
leaq 0x21fca(%rip), %rsi     # 0x27c3d
movq %rbx, %rdi
movl %ebp, %edx
callq 0x57de
movsd 0x1a79b(%rip), %xmm0    # 0x20420
movq %rbx, %rdi
callq 0x3f9a
leaq 0x22df2(%rip), %rsi     # 0x28a86
movq %rbx, %rdi
movl %ebp, %edx
callq 0x57de
movq %rbx, %rdi
callq 0x7336
leaq 0x2459b(%rip), %rsi     # 0x2a248
movq %rbx, %rdi
movl %ebp, %edx
callq 0x57de
leaq 0x21f69(%rip), %rsi     # 0x27c27
leaq 0x16ca(%rip), %rdx      # 0x738f
movq %rbx, %rdi
callq 0x7362
leaq 0x21f5c(%rip), %rsi     # 0x27c30
leaq 0x17cc(%rip), %rdx      # 0x74a7
movq %rbx, %rdi
callq 0x7362
leaq 0x21f51(%rip), %rsi     # 0x27c3b
leaq 0x1873(%rip), %rdx      # 0x7564
movq %rbx, %rdi
callq 0x7362
leaq 0x21f41(%rip), %rsi     # 0x27c41
leaq 0x187c(%rip), %rdx      # 0x7583
movq %rbx, %rdi
callq 0x7362
leaq 0x21f34(%rip), %rsi     # 0x27c4a
leaq 0x1898(%rip), %rdx      # 0x75b5
movq %rbx, %rdi
callq 0x7362
leaq 0x21f28(%rip), %rsi     # 0x27c54
leaq 0x18a1(%rip), %rdx      # 0x75d4
movq %rbx, %rdi
callq 0x7362
leaq 0x21f25(%rip), %rsi     # 0x27c67
leaq 0x18aa(%rip), %rdx      # 0x75f3
movq %rbx, %rdi
callq 0x7362
leaq 0x21f19(%rip), %rsi     # 0x27c71
leaq 0x18b3(%rip), %rdx      # 0x7612
movq %rbx, %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x7362