// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jslex.c
// Function: lexnumber
static int lexnumber(js_State *J)
{
	const char *s = J->source - 1;

	if (jsY_accept(J, '0')) {
		if (jsY_accept(J, 'x') || jsY_accept(J, 'X')) {
			J->number = lexhex(J);
			return TK_NUMBER;
		}
		if (jsY_isdec(J->lexchar))
			jsY_error(J, "number with leading zero");
		if (jsY_accept(J, '.')) {
			while (jsY_isdec(J->lexchar))
				jsY_next(J);
		}
	} else if (jsY_accept(J, '.')) {
		if (!jsY_isdec(J->lexchar))
			return '.';
		while (jsY_isdec(J->lexchar))
			jsY_next(J);
	} else {
		while (jsY_isdec(J->lexchar))
			jsY_next(J);
		if (jsY_accept(J, '.')) {
			while (jsY_isdec(J->lexchar))
				jsY_next(J);
		}
	}

	if (jsY_accept(J, 'e') || jsY_accept(J, 'E')) {
		if (J->lexchar == '-' || J->lexchar == '+')
			jsY_next(J);
		if (jsY_isdec(J->lexchar))
			while (jsY_isdec(J->lexchar))
				jsY_next(J);
		else
			jsY_error(J, "missing exponent");
	}

	if (jsY_isidentifierstart(J->lexchar))
		jsY_error(J, "number with letter suffix");

	J->number = js_strtod(s, NULL);
	return TK_NUMBER;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x30, 0x64(%rax)
jne 0x24fba
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0x24fc5
jmp 0x25097
xorl %eax, %eax
testb $0x1, %al
jne 0x24fc5
jmp 0x25097
movq -0x10(%rbp), %rax
cmpl $0x78, 0x64(%rax)
jne 0x24fe0
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0x2500b
jmp 0x24fe8
xorl %eax, %eax
testb $0x1, %al
jne 0x2500b
jmp 0x24fe8
movq -0x10(%rbp), %rax
cmpl $0x58, 0x64(%rax)
jne 0x25003
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0x2500b
jmp 0x2502c
xorl %eax, %eax
testb $0x1, %al
jne 0x2500b
jmp 0x2502c
movq -0x10(%rbp), %rdi
callq 0x25790
movq -0x10(%rbp), %rax
movsd %xmm0, 0x80(%rax)
movl $0x101, -0x4(%rbp)      # imm = 0x101
jmp 0x25247
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25830
cmpl $0x0, %eax
je 0x2504f
movq -0x10(%rbp), %rdi
leaq 0x17e66(%rip), %rsi     # 0x3ceae
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rax
cmpl $0x2e, 0x64(%rax)
jne 0x2506a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0x25072
jmp 0x25092
xorl %eax, %eax
testb $0x1, %al
jne 0x25072
jmp 0x25092
jmp 0x25074
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25830
cmpl $0x0, %eax
je 0x25090
movq -0x10(%rbp), %rdi
callq 0xe0a0
jmp 0x25074
jmp 0x25092
jmp 0x2515c
movq -0x10(%rbp), %rax
cmpl $0x2e, 0x64(%rax)
jne 0x250b2
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0x250ba
jmp 0x250f7
xorl %eax, %eax
testb $0x1, %al
jne 0x250ba
jmp 0x250f7
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25830
cmpl $0x0, %eax
jne 0x250d7
movl $0x2e, -0x4(%rbp)
jmp 0x25247
jmp 0x250d9
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25830
cmpl $0x0, %eax
je 0x250f5
movq -0x10(%rbp), %rdi
callq 0xe0a0
jmp 0x250d9
jmp 0x2515a
jmp 0x250f9
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25830
cmpl $0x0, %eax
je 0x25115
movq -0x10(%rbp), %rdi
callq 0xe0a0
jmp 0x250f9
movq -0x10(%rbp), %rax
cmpl $0x2e, 0x64(%rax)
jne 0x25130
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0x25138
jmp 0x25158
xorl %eax, %eax
testb $0x1, %al
jne 0x25138
jmp 0x25158
jmp 0x2513a
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25830
cmpl $0x0, %eax
je 0x25156
movq -0x10(%rbp), %rdi
callq 0xe0a0
jmp 0x2513a
jmp 0x25158
jmp 0x2515a
jmp 0x2515c
movq -0x10(%rbp), %rax
cmpl $0x65, 0x64(%rax)
jne 0x25177
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0x251a2
jmp 0x2517f
xorl %eax, %eax
testb $0x1, %al
jne 0x251a2
jmp 0x2517f
movq -0x10(%rbp), %rax
cmpl $0x45, 0x64(%rax)
jne 0x2519a
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0x251a2
jmp 0x25204
xorl %eax, %eax
testb $0x1, %al
jne 0x251a2
jmp 0x25204
movq -0x10(%rbp), %rax
cmpl $0x2d, 0x64(%rax)
je 0x251b6
movq -0x10(%rbp), %rax
cmpl $0x2b, 0x64(%rax)
jne 0x251bf
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25830
cmpl $0x0, %eax
je 0x251f0
jmp 0x251d2
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25830
cmpl $0x0, %eax
je 0x251ee
movq -0x10(%rbp), %rdi
callq 0xe0a0
jmp 0x251d2
jmp 0x25202
movq -0x10(%rbp), %rdi
leaq 0x17ccc(%rip), %rsi     # 0x3cec7
movb $0x0, %al
callq 0xf250
jmp 0x25204
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x254d0
cmpl $0x0, %eax
je 0x25227
movq -0x10(%rbp), %rdi
leaq 0x17cb8(%rip), %rsi     # 0x3ced8
movb $0x0, %al
callq 0xf250
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xb590
movq -0x10(%rbp), %rax
movsd %xmm0, 0x80(%rax)
movl $0x101, -0x4(%rbp)      # imm = 0x101
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq