Have std/json pops show parent container type
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index eb370d9..67c821b 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -18442,7 +18442,7 @@
         v_depth += 1;
         (iop_a_src += 1, wuffs_base__make_empty_struct());
         *iop_a_dst++ = wuffs_base__make_token(
-            (((uint64_t)(2097168)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+            (((uint64_t)(2097169)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
             (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
         v_expect = 19;
         v_expect_after_value = 20;
@@ -18453,10 +18453,10 @@
           goto exit;
         }
         (iop_a_src += 1, wuffs_base__make_empty_struct());
-        *iop_a_dst++ = wuffs_base__make_token(
-            (((uint64_t)(2097232)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
-            (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
         if (v_depth <= 1) {
+          *iop_a_dst++ = wuffs_base__make_token(
+              (((uint64_t)(2097170)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+              (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
           goto label_0_break;
         }
         v_depth -= 1;
@@ -18464,9 +18464,15 @@
         v_stack_bit = ((v_depth - 1) & 31);
         if (0 == (self->private_data.f_stack[v_stack_byte] &
                   (((uint32_t)(1)) << v_stack_bit))) {
+          *iop_a_dst++ = wuffs_base__make_token(
+              (((uint64_t)(2101266)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+              (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
           v_expect = 20;
           v_expect_after_value = 20;
         } else {
+          *iop_a_dst++ = wuffs_base__make_token(
+              (((uint64_t)(2105362)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+              (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
           v_expect = 36;
           v_expect_after_value = 36;
         }
@@ -18488,7 +18494,7 @@
         v_depth += 1;
         (iop_a_src += 1, wuffs_base__make_empty_struct());
         *iop_a_dst++ = wuffs_base__make_token(
-            (((uint64_t)(2097184)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+            (((uint64_t)(2097185)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
             (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
         v_expect = 34;
         v_expect_after_value = 36;
@@ -18499,10 +18505,10 @@
           goto exit;
         }
         (iop_a_src += 1, wuffs_base__make_empty_struct());
-        *iop_a_dst++ = wuffs_base__make_token(
-            (((uint64_t)(2097248)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
-            (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
         if (v_depth <= 1) {
+          *iop_a_dst++ = wuffs_base__make_token(
+              (((uint64_t)(2097186)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+              (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
           goto label_0_break;
         }
         v_depth -= 1;
@@ -18510,9 +18516,15 @@
         v_stack_bit = ((v_depth - 1) & 31);
         if (0 == (self->private_data.f_stack[v_stack_byte] &
                   (((uint32_t)(1)) << v_stack_bit))) {
+          *iop_a_dst++ = wuffs_base__make_token(
+              (((uint64_t)(2101282)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+              (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
           v_expect = 20;
           v_expect_after_value = 20;
         } else {
+          *iop_a_dst++ = wuffs_base__make_token(
+              (((uint64_t)(2105378)) << WUFFS_BASE__TOKEN__VALUE__SHIFT) |
+              (((uint64_t)(1)) << WUFFS_BASE__TOKEN__LENGTH__SHIFT));
           v_expect = 36;
           v_expect_after_value = 36;
         }
diff --git a/std/json/decode_json.wuffs b/std/json/decode_json.wuffs
index 1b65adb..c65f33a 100644
--- a/std/json/decode_json.wuffs
+++ b/std/json/decode_json.wuffs
@@ -250,7 +250,7 @@
 			depth += 1
 
 			args.src.skip32_fast!(actual: 1, worst_case: 1)
-			args.dst.write_fast_token!(value: 0x20_0010, length: 1)
+			args.dst.write_fast_token!(value: 0x20_0011, length: 1)
 			expect = 0x13  // 0x13 is (EXPECT_CLOSE_BRACKET | EXPECT_VALUE).
 			expect_after_value = 0x14  // 0x14 is (EXPECT_CLOSE_BRACKET | EXPECT_COMMA).
 			continue.outer
@@ -260,18 +260,20 @@
 				return "#bad input"
 			}
 			args.src.skip32_fast!(actual: 1, worst_case: 1)
-			args.dst.write_fast_token!(value: 0x20_0050, length: 1)
 			if depth <= 1 {
+				args.dst.write_fast_token!(value: 0x20_0012, length: 1)
 				break.outer
 			}
 			depth -= 1
 			stack_byte = (depth - 1) / 32
 			stack_bit = (depth - 1) & 31
 			if 0 == (this.stack[stack_byte] & ((1 as base.u32) << stack_bit)) {
+				args.dst.write_fast_token!(value: 0x20_1012, length: 1)
 				// 0x14 is (EXPECT_CLOSE_BRACKET | EXPECT_COMMA).
 				expect = 0x14
 				expect_after_value = 0x14
 			} else {
+				args.dst.write_fast_token!(value: 0x20_2012, length: 1)
 				// 0x24 is (EXPECT_CLOSE_BRACE | EXPECT_COMMA).
 				expect = 0x24
 				expect_after_value = 0x24
@@ -291,7 +293,7 @@
 			depth += 1
 
 			args.src.skip32_fast!(actual: 1, worst_case: 1)
-			args.dst.write_fast_token!(value: 0x20_0020, length: 1)
+			args.dst.write_fast_token!(value: 0x20_0021, length: 1)
 			expect = 0x22  // 0x22 is (EXPECT_CLOSE_BRACE | EXPECT_STRING_VALUE).
 			expect_after_value = 0x24  // 0x24 is (EXPECT_CLOSE_BRACE | EXPECT_COMMA).
 			continue.outer
@@ -301,18 +303,20 @@
 				return "#bad input"
 			}
 			args.src.skip32_fast!(actual: 1, worst_case: 1)
-			args.dst.write_fast_token!(value: 0x20_0060, length: 1)
 			if depth <= 1 {
+				args.dst.write_fast_token!(value: 0x20_0022, length: 1)
 				break.outer
 			}
 			depth -= 1
 			stack_byte = (depth - 1) / 32
 			stack_bit = (depth - 1) & 31
 			if 0 == (this.stack[stack_byte] & ((1 as base.u32) << stack_bit)) {
+				args.dst.write_fast_token!(value: 0x20_1022, length: 1)
 				// 0x14 is (EXPECT_CLOSE_BRACKET | EXPECT_COMMA).
 				expect = 0x14
 				expect_after_value = 0x14
 			} else {
+				args.dst.write_fast_token!(value: 0x20_2022, length: 1)
 				// 0x24 is (EXPECT_CLOSE_BRACE | EXPECT_COMMA).
 				expect = 0x24
 				expect_after_value = 0x24