// File: yanlinlin82[P]jsonxx/demo.new.cpp
// Function: test_json_node_values()
void test_json_node_values()
{
	json j1(true);  std::cout << "[TEST:43] j1.as_boolean() = " << j1.as_boolean() << " // expected: 1" << std::endl;
	json j2(false); std::cout << "[TEST:44] j2.as_boolean() = " << j2.as_boolean() << " // expected: 0" << std::endl;

	json j3(123);  std::cout << "[TEST:46] j3.as_number() = " << j3.as_number() << " // expected: 123" << std::endl;
	json j4(3.14); std::cout << "[TEST:47] j4.as_number<float>() = " << j4.as_number<float>() << " // expected: 3.14" << std::endl;

	json j5("hello"); std::cout << "[TEST:49] j5.as_string() = " << j5.as_string() << " // expected: hello" << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x300, %rsp            # imm = 0x300
leaq -0x70(%rbp), %rdi
movl $0x1, %esi
callq 0x8120
movq 0x176c8(%rip), %rdi     # 0x1bfd8
leaq 0xfbc2(%rip), %rsi      # 0x144d9
callq 0x3340
movq %rax, -0x268(%rbp)
jmp 0x4925
leaq -0x70(%rbp), %rdi
callq 0x8b40
movb %al, -0x269(%rbp)
jmp 0x4936
movq -0x268(%rbp), %rdi
movb -0x269(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x3500
movq %rax, -0x278(%rbp)
jmp 0x4957
movq -0x278(%rbp), %rdi
leaq 0xfb91(%rip), %rsi      # 0x144f6
callq 0x3340
movq %rax, -0x280(%rbp)
jmp 0x4973
movq -0x280(%rbp), %rdi
movq 0x17637(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x4988
leaq -0xf0(%rbp), %rdi
xorl %esi, %esi
callq 0x8120
jmp 0x4998
movq 0x17639(%rip), %rdi     # 0x1bfd8
leaq 0xfb60(%rip), %rsi      # 0x14506
callq 0x3340
movq %rax, -0x288(%rbp)
jmp 0x49b4
leaq -0xf0(%rbp), %rdi
callq 0x8b40
movb %al, -0x289(%rbp)
jmp 0x49c8
movq -0x288(%rbp), %rdi
movb -0x289(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x3500
movq %rax, -0x298(%rbp)
jmp 0x49e9
movq -0x298(%rbp), %rdi
leaq 0xf802(%rip), %rsi      # 0x141f9
callq 0x3340
movq %rax, -0x2a0(%rbp)
jmp 0x4a05
movq -0x2a0(%rbp), %rdi
movq 0x175a5(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x4a1a
leaq -0x160(%rbp), %rdi
movl $0x7b, %esi
callq 0x81f0
jmp 0x4a2d
movq 0x175a4(%rip), %rdi     # 0x1bfd8
leaq 0xfae8(%rip), %rsi      # 0x14523
callq 0x3340
movq %rax, -0x2a8(%rbp)
jmp 0x4a49
leaq -0x160(%rbp), %rdi
callq 0x8ba0
movl %eax, -0x2ac(%rbp)
jmp 0x4a5d
movl -0x2ac(%rbp), %esi
movq -0x2a8(%rbp), %rdi
callq 0x34d0
movq %rax, -0x2b8(%rbp)
jmp 0x4a78
movq -0x2b8(%rbp), %rdi
leaq 0xf793(%rip), %rsi      # 0x14219
callq 0x3340
movq %rax, -0x2c0(%rbp)
jmp 0x4a94
movq -0x2c0(%rbp), %rdi
movq 0x17516(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x4aa9
leaq -0x1d0(%rbp), %rdi
movsd 0xf558(%rip), %xmm0     # 0x14010
callq 0x8320
jmp 0x4abf
movq 0x17512(%rip), %rdi     # 0x1bfd8
leaq 0xfa72(%rip), %rsi      # 0x1453f
callq 0x3340
movq %rax, -0x2c8(%rbp)
jmp 0x4adb
leaq -0x1d0(%rbp), %rdi
callq 0x8c70
movss %xmm0, -0x2cc(%rbp)
jmp 0x4af1
movss -0x2cc(%rbp), %xmm0
movq -0x2c8(%rbp), %rdi
callq 0x3280
movq %rax, -0x2d8(%rbp)
jmp 0x4b0e
movq -0x2d8(%rbp), %rdi
leaq 0xfa46(%rip), %rsi      # 0x14562
callq 0x3340
movq %rax, -0x2e0(%rbp)
jmp 0x4b2a
movq -0x2e0(%rbp), %rdi
movq 0x17480(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x4b3f
leaq 0xfa59(%rip), %rsi      # 0x1459f
leaq -0x240(%rbp), %rdi
callq 0x83b0
jmp 0x4b54
movq 0x1747d(%rip), %rdi     # 0x1bfd8
leaq 0xfa13(%rip), %rsi      # 0x14575
callq 0x3340
movq %rax, -0x2e8(%rbp)
jmp 0x4b70
leaq -0x260(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x8d40
jmp 0x4b85
movq -0x2e8(%rbp), %rdi
leaq -0x260(%rbp), %rsi
callq 0x3300
movq %rax, -0x2f0(%rbp)
jmp 0x4ba1
movq -0x2f0(%rbp), %rdi
leaq 0xf9e2(%rip), %rsi      # 0x14591
callq 0x3340
movq %rax, -0x2f8(%rbp)
jmp 0x4bbd
movq -0x2f8(%rbp), %rdi
movq 0x173ed(%rip), %rsi     # 0x1bfb8
callq 0x3380
jmp 0x4bd2
leaq -0x260(%rbp), %rdi
callq 0x3578
leaq -0x240(%rbp), %rdi
callq 0x8b00
leaq -0x1d0(%rbp), %rdi
callq 0x8b00
leaq -0x160(%rbp), %rdi
callq 0x8b00
leaq -0xf0(%rbp), %rdi
callq 0x8b00
leaq -0x70(%rbp), %rdi
callq 0x8b00
addq $0x300, %rsp            # imm = 0x300
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4cb1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4ca5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4c99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4c8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x4c81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x3578
leaq -0x240(%rbp), %rdi
callq 0x8b00
leaq -0x1d0(%rbp), %rdi
callq 0x8b00
leaq -0x160(%rbp), %rdi
callq 0x8b00
leaq -0xf0(%rbp), %rdi
callq 0x8b00
leaq -0x70(%rbp), %rdi
callq 0x8b00
movq -0x78(%rbp), %rdi
callq 0x34e0
nopw %cs:(%rax,%rax)