diff --git a/base/comment-injection-typescript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.ts b/head/comment-injection-typescript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.ts
index 934c40e..a9e173d 100644
--- a/base/comment-injection-typescript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.ts
+++ b/head/comment-injection-typescript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.ts
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/comment-injection-typescript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.ts b/head/comment-injection-typescript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.ts
index 2a64dc5..d15151f 100644
--- a/base/comment-injection-typescript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.ts
+++ b/head/comment-injection-typescript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.ts
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -138,7 +138,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/comment-injection-typescript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.ts b/head/comment-injection-typescript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.ts
index 504b925..2ed28c8 100644
--- a/base/comment-injection-typescript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.ts
+++ b/head/comment-injection-typescript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.ts
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/comment-injection-typescript/test/inputs/schema/comment-injection.schema/default/TopLevel.ts b/head/comment-injection-typescript/test/inputs/schema/comment-injection.schema/default/TopLevel.ts
index 7b4e86e..6d078d1 100644
--- a/base/comment-injection-typescript/test/inputs/schema/comment-injection.schema/default/TopLevel.ts
+++ b/head/comment-injection-typescript/test/inputs/schema/comment-injection.schema/default/TopLevel.ts
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/elm/test/inputs/json/misc/00c36.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/00c36.json/default/QuickType.elm
index 457bf56..b7ad6f1 100644
--- a/base/elm/test/inputs/json/misc/00c36.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/00c36.json/default/QuickType.elm
@@ -169,6 +169,14 @@ encodeFluffyQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/00ec5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/00ec5.json/default/QuickType.elm
index 286ecb4..20ac735 100644
--- a/base/elm/test/inputs/json/misc/00ec5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/00ec5.json/default/QuickType.elm
@@ -160,7 +160,7 @@ provider =
 encodeProvider : Provider -> Jenc.Value
 encodeProvider x =
     Jenc.object
-        [ ("properties", Jenc.dict identity encodeProperty x.properties)
+        [ ("properties", makeDictEncoder identity encodeProperty x.properties)
         ]
 
 property : Jdec.Decoder Property
@@ -303,6 +303,14 @@ encodeSchema x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/010b1.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/010b1.json/default/QuickType.elm
index 9bf4795..0e4b4eb 100644
--- a/base/elm/test/inputs/json/misc/010b1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/010b1.json/default/QuickType.elm
@@ -88,6 +88,14 @@ encodeCountry x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/016af.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/016af.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/016af.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/016af.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/033b1.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/033b1.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/033b1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/033b1.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/050b0.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/050b0.json/default/QuickType.elm
index 7f5c7de..cab4c95 100644
--- a/base/elm/test/inputs/json/misc/050b0.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/050b0.json/default/QuickType.elm
@@ -274,6 +274,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/06bee.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/06bee.json/default/QuickType.elm
index 54f36cd..fae30d2 100644
--- a/base/elm/test/inputs/json/misc/06bee.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/06bee.json/default/QuickType.elm
@@ -234,6 +234,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/07540.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/07540.json/default/QuickType.elm
index 9992018..01d46fe 100644
--- a/base/elm/test/inputs/json/misc/07540.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/07540.json/default/QuickType.elm
@@ -65,6 +65,14 @@ encodeCookies x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/0779f.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/0779f.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/0779f.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/0779f.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/07c75.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/07c75.json/default/QuickType.elm
index cbcc201..75b1e7b 100644
--- a/base/elm/test/inputs/json/misc/07c75.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/07c75.json/default/QuickType.elm
@@ -137,6 +137,14 @@ encodeText x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/09f54.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/09f54.json/default/QuickType.elm
index b7adef0..8b79e00 100644
--- a/base/elm/test/inputs/json/misc/09f54.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/09f54.json/default/QuickType.elm
@@ -61,7 +61,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("data", Jenc.dict identity encodeDatum x.data)
+        [ ("data", makeDictEncoder identity encodeDatum x.data)
         , ("description", encodeDescription x.description)
         ]
 
@@ -97,6 +97,14 @@ encodeDescription x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/0a358.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/0a358.json/default/QuickType.elm
index 81e7204..d3cdbb2 100644
--- a/base/elm/test/inputs/json/misc/0a358.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/0a358.json/default/QuickType.elm
@@ -114,6 +114,14 @@ encodeResult x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/0a91a.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/0a91a.json/default/QuickType.elm
index 3535b72..bd8b04b 100644
--- a/base/elm/test/inputs/json/misc/0a91a.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/0a91a.json/default/QuickType.elm
@@ -762,6 +762,14 @@ encodeQuickTypeRepo x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/0b91a.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/0b91a.json/default/QuickType.elm
index b3a48e8..88d5834 100644
--- a/base/elm/test/inputs/json/misc/0b91a.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/0b91a.json/default/QuickType.elm
@@ -190,6 +190,14 @@ encodeComponent x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/0cffa.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/0cffa.json/default/QuickType.elm
index c0f5a44..25e8e51 100644
--- a/base/elm/test/inputs/json/misc/0cffa.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/0cffa.json/default/QuickType.elm
@@ -455,6 +455,14 @@ encodePagination x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/0e0c2.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/0e0c2.json/default/QuickType.elm
index a3d9b8b..452474d 100644
--- a/base/elm/test/inputs/json/misc/0e0c2.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/0e0c2.json/default/QuickType.elm
@@ -333,6 +333,14 @@ encodeVoteScore x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/0fecf.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/0fecf.json/default/QuickType.elm
index ac9683b..4140a6b 100644
--- a/base/elm/test/inputs/json/misc/0fecf.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/0fecf.json/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/10be4.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/10be4.json/default/QuickType.elm
index de92b7c..ab1303b 100644
--- a/base/elm/test/inputs/json/misc/10be4.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/10be4.json/default/QuickType.elm
@@ -307,6 +307,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/112b5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/112b5.json/default/QuickType.elm
index 28a3160..35ad117 100644
--- a/base/elm/test/inputs/json/misc/112b5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/112b5.json/default/QuickType.elm
@@ -99,6 +99,14 @@ encodeHeaders x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/127a1.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/127a1.json/default/QuickType.elm
index d271b6c..a3bccbf 100644
--- a/base/elm/test/inputs/json/misc/127a1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/127a1.json/default/QuickType.elm
@@ -452,6 +452,14 @@ encodePagination x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/13d8d.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/13d8d.json/default/QuickType.elm
index 9539c42..24eea7e 100644
--- a/base/elm/test/inputs/json/misc/13d8d.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/13d8d.json/default/QuickType.elm
@@ -140,6 +140,14 @@ encodeOutcomeStatus x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/14d38.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/14d38.json/default/QuickType.elm
index 5a3bf52..5bf1736 100644
--- a/base/elm/test/inputs/json/misc/14d38.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/14d38.json/default/QuickType.elm
@@ -75,6 +75,14 @@ encodeHeaders x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/167d6.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/167d6.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/167d6.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/167d6.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/16bc5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/16bc5.json/default/QuickType.elm
index 3f9c3a4..d002683 100644
--- a/base/elm/test/inputs/json/misc/16bc5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/16bc5.json/default/QuickType.elm
@@ -396,6 +396,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/176f1.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/176f1.json/default/QuickType.elm
index 9dde13a..3b47858 100644
--- a/base/elm/test/inputs/json/misc/176f1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/176f1.json/default/QuickType.elm
@@ -141,6 +141,14 @@ encodeFootnote x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/1a7f5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/1a7f5.json/default/QuickType.elm
index 9bf4795..0e4b4eb 100644
--- a/base/elm/test/inputs/json/misc/1a7f5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/1a7f5.json/default/QuickType.elm
@@ -88,6 +88,14 @@ encodeCountry x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/1b28c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/1b28c.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/1b28c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/1b28c.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/1b409.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/1b409.json/default/QuickType.elm
index 61ac3c9..0ac9992 100644
--- a/base/elm/test/inputs/json/misc/1b409.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/1b409.json/default/QuickType.elm
@@ -395,6 +395,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/2465e.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/2465e.json/default/QuickType.elm
index bc6aadd..07dffb0 100644
--- a/base/elm/test/inputs/json/misc/2465e.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/2465e.json/default/QuickType.elm
@@ -317,6 +317,14 @@ encodeSchema x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/24f52.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/24f52.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/24f52.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/24f52.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/262f0.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/262f0.json/default/QuickType.elm
index 5aa7937..0dc4b0f 100644
--- a/base/elm/test/inputs/json/misc/262f0.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/262f0.json/default/QuickType.elm
@@ -419,6 +419,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/26b49.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/26b49.json/default/QuickType.elm
index 05753cc..215bed2 100644
--- a/base/elm/test/inputs/json/misc/26b49.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/26b49.json/default/QuickType.elm
@@ -438,6 +438,14 @@ encodePagination x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/26c9c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/26c9c.json/default/QuickType.elm
index 6190e0a..d5151d7 100644
--- a/base/elm/test/inputs/json/misc/26c9c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/26c9c.json/default/QuickType.elm
@@ -717,6 +717,14 @@ encodeExpression x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/27332.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/27332.json/default/QuickType.elm
index dd98d5c..a386b31 100644
--- a/base/elm/test/inputs/json/misc/27332.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/27332.json/default/QuickType.elm
@@ -607,6 +607,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/29f47.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/29f47.json/default/QuickType.elm
index 100e095..b6d2280 100644
--- a/base/elm/test/inputs/json/misc/29f47.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/29f47.json/default/QuickType.elm
@@ -580,6 +580,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/2d4e2.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/2d4e2.json/default/QuickType.elm
index 0957cec..f62441e 100644
--- a/base/elm/test/inputs/json/misc/2d4e2.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/2d4e2.json/default/QuickType.elm
@@ -475,6 +475,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/2df80.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/2df80.json/default/QuickType.elm
index 390f7dc..61061b3 100644
--- a/base/elm/test/inputs/json/misc/2df80.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/2df80.json/default/QuickType.elm
@@ -304,6 +304,14 @@ encodeFluffyQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/31189.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/31189.json/default/QuickType.elm
index eb80c1e..e22f484 100644
--- a/base/elm/test/inputs/json/misc/31189.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/31189.json/default/QuickType.elm
@@ -131,6 +131,14 @@ encodeRates x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/32431.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/32431.json/default/QuickType.elm
index 99ce8f3..4e25d6f 100644
--- a/base/elm/test/inputs/json/misc/32431.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/32431.json/default/QuickType.elm
@@ -319,6 +319,14 @@ encodeMetadata x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/32d5c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/32d5c.json/default/QuickType.elm
index bdf2870..b3f8e8a 100644
--- a/base/elm/test/inputs/json/misc/32d5c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/32d5c.json/default/QuickType.elm
@@ -77,6 +77,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/337ed.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/337ed.json/default/QuickType.elm
index 5190ddd..06c33fa 100644
--- a/base/elm/test/inputs/json/misc/337ed.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/337ed.json/default/QuickType.elm
@@ -292,6 +292,14 @@ encodeResultType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/33d2e.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/33d2e.json/default/QuickType.elm
index 2525793..5184a48 100644
--- a/base/elm/test/inputs/json/misc/33d2e.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/33d2e.json/default/QuickType.elm
@@ -227,6 +227,14 @@ encodeCategory x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/34702.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/34702.json/default/QuickType.elm
index 5ff10a4..e91386c 100644
--- a/base/elm/test/inputs/json/misc/34702.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/34702.json/default/QuickType.elm
@@ -382,6 +382,14 @@ encodeRegion x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/3536b.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/3536b.json/default/QuickType.elm
index 715371e..78f6ef8 100644
--- a/base/elm/test/inputs/json/misc/3536b.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/3536b.json/default/QuickType.elm
@@ -183,6 +183,14 @@ encodeText x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/3659d.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/3659d.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/3659d.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/3659d.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/36d5d.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/36d5d.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/36d5d.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/36d5d.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/3a6b3.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/3a6b3.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/3a6b3.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/3a6b3.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/3e9a3.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/3e9a3.json/default/QuickType.elm
index 9dde13a..3b47858 100644
--- a/base/elm/test/inputs/json/misc/3e9a3.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/3e9a3.json/default/QuickType.elm
@@ -141,6 +141,14 @@ encodeFootnote x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/3f1ce.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/3f1ce.json/default/QuickType.elm
index 022d690..018884e 100644
--- a/base/elm/test/inputs/json/misc/3f1ce.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/3f1ce.json/default/QuickType.elm
@@ -413,6 +413,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/421d4.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/421d4.json/default/QuickType.elm
index bd52ccc..9b6ab01 100644
--- a/base/elm/test/inputs/json/misc/421d4.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/421d4.json/default/QuickType.elm
@@ -456,6 +456,14 @@ encodeOwner x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/437e7.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/437e7.json/default/QuickType.elm
index 2f38188..5527d04 100644
--- a/base/elm/test/inputs/json/misc/437e7.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/437e7.json/default/QuickType.elm
@@ -429,6 +429,14 @@ encodePagination x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/43970.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/43970.json/default/QuickType.elm
index 2d63ef1..4f16fc9 100644
--- a/base/elm/test/inputs/json/misc/43970.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/43970.json/default/QuickType.elm
@@ -62,6 +62,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/43eaf.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/43eaf.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/43eaf.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/43eaf.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/458db.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/458db.json/default/QuickType.elm
index d8f373d..ea3e155 100644
--- a/base/elm/test/inputs/json/misc/458db.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/458db.json/default/QuickType.elm
@@ -204,6 +204,14 @@ encodeName x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/4961a.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/4961a.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/4961a.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/4961a.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/4a0d7.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/4a0d7.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/4a0d7.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/4a0d7.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/4a455.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/4a455.json/default/QuickType.elm
index 698da26..948f0cd 100644
--- a/base/elm/test/inputs/json/misc/4a455.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/4a455.json/default/QuickType.elm
@@ -223,6 +223,14 @@ encodeFeatureProperties x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/4c547.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/4c547.json/default/QuickType.elm
index 3f9c3a4..d002683 100644
--- a/base/elm/test/inputs/json/misc/4c547.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/4c547.json/default/QuickType.elm
@@ -396,6 +396,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/4d6fb.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/4d6fb.json/default/QuickType.elm
index b7795c8..90522ce 100644
--- a/base/elm/test/inputs/json/misc/4d6fb.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/4d6fb.json/default/QuickType.elm
@@ -584,6 +584,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/4e336.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/4e336.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/4e336.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/4e336.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/54147.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/54147.json/default/QuickType.elm
index b5ae62b..23dddd5 100644
--- a/base/elm/test/inputs/json/misc/54147.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/54147.json/default/QuickType.elm
@@ -108,6 +108,14 @@ encodeHeaders x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/54d32.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/54d32.json/default/QuickType.elm
index 65ea932..bdb8690 100644
--- a/base/elm/test/inputs/json/misc/54d32.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/54d32.json/default/QuickType.elm
@@ -134,6 +134,14 @@ encodeStatus x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/570ec.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/570ec.json/default/QuickType.elm
index acfb102..039d983 100644
--- a/base/elm/test/inputs/json/misc/570ec.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/570ec.json/default/QuickType.elm
@@ -179,6 +179,14 @@ encodeText x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/5dd0d.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/5dd0d.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/5dd0d.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/5dd0d.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/5eae5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/5eae5.json/default/QuickType.elm
index 9441fa6..9d563e3 100644
--- a/base/elm/test/inputs/json/misc/5eae5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/5eae5.json/default/QuickType.elm
@@ -65,6 +65,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/5eb20.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/5eb20.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/5eb20.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/5eb20.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/5f3a1.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/5f3a1.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/5f3a1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/5f3a1.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/5f7fe.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/5f7fe.json/default/QuickType.elm
index e249849..e74b04c 100644
--- a/base/elm/test/inputs/json/misc/5f7fe.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/5f7fe.json/default/QuickType.elm
@@ -728,6 +728,14 @@ encodeExpression x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/617e8.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/617e8.json/default/QuickType.elm
index 83a63ff..2bd6cd8 100644
--- a/base/elm/test/inputs/json/misc/617e8.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/617e8.json/default/QuickType.elm
@@ -725,6 +725,14 @@ encodeExpression x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/61b66.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/61b66.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/61b66.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/61b66.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/6260a.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/6260a.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/6260a.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/6260a.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/65dec.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/65dec.json/default/QuickType.elm
index 455ff8b..58ab40d 100644
--- a/base/elm/test/inputs/json/misc/65dec.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/65dec.json/default/QuickType.elm
@@ -371,6 +371,14 @@ encodeType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/66121.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/66121.json/default/QuickType.elm
index 51005c7..194c5d1 100644
--- a/base/elm/test/inputs/json/misc/66121.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/66121.json/default/QuickType.elm
@@ -234,6 +234,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/6617c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/6617c.json/default/QuickType.elm
index 98976ec..245c430 100644
--- a/base/elm/test/inputs/json/misc/6617c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/6617c.json/default/QuickType.elm
@@ -75,6 +75,14 @@ encodeIssPosition x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/67c03.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/67c03.json/default/QuickType.elm
index 327d904..601a713 100644
--- a/base/elm/test/inputs/json/misc/67c03.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/67c03.json/default/QuickType.elm
@@ -75,6 +75,14 @@ encodePerson x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/68c30.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/68c30.json/default/QuickType.elm
index bc8eb48..8ae3656 100644
--- a/base/elm/test/inputs/json/misc/68c30.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/68c30.json/default/QuickType.elm
@@ -155,6 +155,14 @@ encodeOut x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/6c155.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/6c155.json/default/QuickType.elm
index 2f641fe..65c38ec 100644
--- a/base/elm/test/inputs/json/misc/6c155.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/6c155.json/default/QuickType.elm
@@ -233,6 +233,14 @@ encodeLocation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/6de06.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/6de06.json/default/QuickType.elm
index 70d97a6..d3a76a2 100644
--- a/base/elm/test/inputs/json/misc/6de06.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/6de06.json/default/QuickType.elm
@@ -562,6 +562,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/6dec6.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/6dec6.json/default/QuickType.elm
index 1eabe9d..531a8a2 100644
--- a/base/elm/test/inputs/json/misc/6dec6.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/6dec6.json/default/QuickType.elm
@@ -419,6 +419,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/6eb00.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/6eb00.json/default/QuickType.elm
index 21436c6..b5822c6 100644
--- a/base/elm/test/inputs/json/misc/6eb00.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/6eb00.json/default/QuickType.elm
@@ -62,6 +62,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/70c77.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/70c77.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/70c77.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/70c77.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/734ad.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/734ad.json/default/QuickType.elm
index a5586d5..0ffb52f 100644
--- a/base/elm/test/inputs/json/misc/734ad.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/734ad.json/default/QuickType.elm
@@ -290,6 +290,14 @@ encodeStatus x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/75912.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/75912.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/75912.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/75912.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/7681c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/7681c.json/default/QuickType.elm
index d217e29..aa3b940 100644
--- a/base/elm/test/inputs/json/misc/7681c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/7681c.json/default/QuickType.elm
@@ -458,6 +458,14 @@ encodePagination x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/76ae1.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/76ae1.json/default/QuickType.elm
index 0c8edf9..206da10 100644
--- a/base/elm/test/inputs/json/misc/76ae1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/76ae1.json/default/QuickType.elm
@@ -316,7 +316,7 @@ article =
 encodeArticle : Article -> Jenc.Value
 encodeArticle x =
     Jenc.object
-        [ ("properties", Jenc.dict identity encodeProperty x.properties)
+        [ ("properties", makeDictEncoder identity encodeProperty x.properties)
         ]
 
 property : Jdec.Decoder Property
@@ -722,6 +722,14 @@ encodeSchemaType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/77392.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/77392.json/default/QuickType.elm
index bee2e82..4586ec6 100644
--- a/base/elm/test/inputs/json/misc/77392.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/77392.json/default/QuickType.elm
@@ -147,6 +147,14 @@ encodePha x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/7d397.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/7d397.json/default/QuickType.elm
index f1f71b2..9366d1a 100644
--- a/base/elm/test/inputs/json/misc/7d397.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/7d397.json/default/QuickType.elm
@@ -170,7 +170,7 @@ listClass =
 encodeListClass : ListClass -> Jenc.Value
 encodeListClass x =
     Jenc.object
-        [ ("properties", Jenc.dict identity encodeProperty x.properties)
+        [ ("properties", makeDictEncoder identity encodeProperty x.properties)
         ]
 
 property : Jdec.Decoder Property
@@ -339,6 +339,14 @@ encodeItems x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/7d722.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/7d722.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/7d722.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/7d722.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/7df41.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/7df41.json/default/QuickType.elm
index ba787c0..2e2ece5 100644
--- a/base/elm/test/inputs/json/misc/7df41.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/7df41.json/default/QuickType.elm
@@ -84,6 +84,14 @@ encodePC x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/7dfa6.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/7dfa6.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/7dfa6.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/7dfa6.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/7eb30.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/7eb30.json/default/QuickType.elm
index 7f27597..c4feabb 100644
--- a/base/elm/test/inputs/json/misc/7eb30.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/7eb30.json/default/QuickType.elm
@@ -230,6 +230,14 @@ encodeTelEnum x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/7f568.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/7f568.json/default/QuickType.elm
index 35c3eee..8d0421a 100644
--- a/base/elm/test/inputs/json/misc/7f568.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/7f568.json/default/QuickType.elm
@@ -103,7 +103,7 @@ encodeQuickTypeElement x =
         , ("commits_url", Jenc.string x.commitsURL)
         , ("created_at", Jenc.string x.createdAt)
         , ("description", makeNullableEncoder Jenc.string x.description)
-        , ("files", Jenc.dict identity encodeFile x.files)
+        , ("files", makeDictEncoder identity encodeFile x.files)
         , ("forks_url", Jenc.string x.forksURL)
         , ("git_pull_url", Jenc.string x.gitPullURL)
         , ("git_push_url", Jenc.string x.gitPushURL)
@@ -163,6 +163,14 @@ encodeLanguage x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/7fbfb.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/7fbfb.json/default/QuickType.elm
index 78e4185..138d173 100644
--- a/base/elm/test/inputs/json/misc/7fbfb.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/7fbfb.json/default/QuickType.elm
@@ -169,6 +169,14 @@ encodeFluffyQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/80aff.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/80aff.json/default/QuickType.elm
index 6135037..7b59056 100644
--- a/base/elm/test/inputs/json/misc/80aff.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/80aff.json/default/QuickType.elm
@@ -117,6 +117,14 @@ encodeResult x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/82509.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/82509.json/default/QuickType.elm
index 6d5fa4c..b80f17a 100644
--- a/base/elm/test/inputs/json/misc/82509.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/82509.json/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/8592b.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/8592b.json/default/QuickType.elm
index 9d6d6aa..07a3437 100644
--- a/base/elm/test/inputs/json/misc/8592b.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/8592b.json/default/QuickType.elm
@@ -505,6 +505,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/88130.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/88130.json/default/QuickType.elm
index 3f9c3a4..d002683 100644
--- a/base/elm/test/inputs/json/misc/88130.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/88130.json/default/QuickType.elm
@@ -396,6 +396,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/8a62c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/8a62c.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/8a62c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/8a62c.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/908db.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/908db.json/default/QuickType.elm
index 876bc9b..cbe0983 100644
--- a/base/elm/test/inputs/json/misc/908db.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/908db.json/default/QuickType.elm
@@ -85,6 +85,14 @@ encodeStateState x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/9617f.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/9617f.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/9617f.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/9617f.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/96f7c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/96f7c.json/default/QuickType.elm
index 0f84b04..3deaa4d 100644
--- a/base/elm/test/inputs/json/misc/96f7c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/96f7c.json/default/QuickType.elm
@@ -65,6 +65,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/9847b.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/9847b.json/default/QuickType.elm
index fe2af9e..7b62e14 100644
--- a/base/elm/test/inputs/json/misc/9847b.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/9847b.json/default/QuickType.elm
@@ -59,6 +59,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/9929c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/9929c.json/default/QuickType.elm
index 3f9c3a4..d002683 100644
--- a/base/elm/test/inputs/json/misc/9929c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/9929c.json/default/QuickType.elm
@@ -396,6 +396,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/996bd.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/996bd.json/default/QuickType.elm
index 12167b8..a91b2f4 100644
--- a/base/elm/test/inputs/json/misc/996bd.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/996bd.json/default/QuickType.elm
@@ -226,6 +226,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/9a503.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/9a503.json/default/QuickType.elm
index d63a808..38561eb 100644
--- a/base/elm/test/inputs/json/misc/9a503.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/9a503.json/default/QuickType.elm
@@ -160,6 +160,14 @@ encodeText x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/9ac3b.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/9ac3b.json/default/QuickType.elm
index 929feff..76a2e52 100644
--- a/base/elm/test/inputs/json/misc/9ac3b.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/9ac3b.json/default/QuickType.elm
@@ -169,6 +169,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/9eed5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/9eed5.json/default/QuickType.elm
index e2e8cb2..2d9b0d2 100644
--- a/base/elm/test/inputs/json/misc/9eed5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/9eed5.json/default/QuickType.elm
@@ -157,6 +157,14 @@ encodeText x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/a0496.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/a0496.json/default/QuickType.elm
index 3c64382..56fdd77 100644
--- a/base/elm/test/inputs/json/misc/a0496.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/a0496.json/default/QuickType.elm
@@ -133,6 +133,14 @@ encodeErrors x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/a1eca.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/a1eca.json/default/QuickType.elm
index 3f9c3a4..d002683 100644
--- a/base/elm/test/inputs/json/misc/a1eca.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/a1eca.json/default/QuickType.elm
@@ -396,6 +396,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/a3d8c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/a3d8c.json/default/QuickType.elm
index dd2f49a..f52fee9 100644
--- a/base/elm/test/inputs/json/misc/a3d8c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/a3d8c.json/default/QuickType.elm
@@ -470,6 +470,14 @@ encodeOwner x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/a45b0.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/a45b0.json/default/QuickType.elm
index 9bf4795..0e4b4eb 100644
--- a/base/elm/test/inputs/json/misc/a45b0.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/a45b0.json/default/QuickType.elm
@@ -88,6 +88,14 @@ encodeCountry x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/a71df.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/a71df.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/a71df.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/a71df.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/a9691.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/a9691.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/a9691.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/a9691.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/ab0d1.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/ab0d1.json/default/QuickType.elm
index 9bf4795..0e4b4eb 100644
--- a/base/elm/test/inputs/json/misc/ab0d1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/ab0d1.json/default/QuickType.elm
@@ -88,6 +88,14 @@ encodeCountry x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/abb4b.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/abb4b.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/abb4b.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/abb4b.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/ac944.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/ac944.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/ac944.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/ac944.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/ad8be.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/ad8be.json/default/QuickType.elm
index de92b7c..ab1303b 100644
--- a/base/elm/test/inputs/json/misc/ad8be.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/ad8be.json/default/QuickType.elm
@@ -307,6 +307,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/ae7f0.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/ae7f0.json/default/QuickType.elm
index 741259c..43c412b 100644
--- a/base/elm/test/inputs/json/misc/ae7f0.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/ae7f0.json/default/QuickType.elm
@@ -407,6 +407,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/ae9ca.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/ae9ca.json/default/QuickType.elm
index fd911d4..31a51ec 100644
--- a/base/elm/test/inputs/json/misc/ae9ca.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/ae9ca.json/default/QuickType.elm
@@ -240,6 +240,14 @@ encodeWard x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/af2d1.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/af2d1.json/default/QuickType.elm
index 11d274f..60375e3 100644
--- a/base/elm/test/inputs/json/misc/af2d1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/af2d1.json/default/QuickType.elm
@@ -474,6 +474,14 @@ encodeStatus x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/b4865.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/b4865.json/default/QuickType.elm
index 9cf62e5..64dcdc7 100644
--- a/base/elm/test/inputs/json/misc/b4865.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/b4865.json/default/QuickType.elm
@@ -162,6 +162,14 @@ encodeNametype x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/b6f2c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/b6f2c.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/b6f2c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/b6f2c.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/b6fe5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/b6fe5.json/default/QuickType.elm
index 863ab90..1cc3fba 100644
--- a/base/elm/test/inputs/json/misc/b6fe5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/b6fe5.json/default/QuickType.elm
@@ -59,6 +59,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/b9f64.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/b9f64.json/default/QuickType.elm
index a774a16..3e7b82a 100644
--- a/base/elm/test/inputs/json/misc/b9f64.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/b9f64.json/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/bb1ec.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/bb1ec.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/bb1ec.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/bb1ec.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/be234.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/be234.json/default/QuickType.elm
index 1a221c4..5700e18 100644
--- a/base/elm/test/inputs/json/misc/be234.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/be234.json/default/QuickType.elm
@@ -636,6 +636,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/c0356.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/c0356.json/default/QuickType.elm
index 82cbe6f..4a91826 100644
--- a/base/elm/test/inputs/json/misc/c0356.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/c0356.json/default/QuickType.elm
@@ -60,7 +60,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("data", Jenc.dict identity encodeDatum x.data)
+        [ ("data", makeDictEncoder identity encodeDatum x.data)
         , ("description", encodeDescription x.description)
         ]
 
@@ -94,6 +94,14 @@ encodeDescription x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/c0a3a.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/c0a3a.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/c0a3a.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/c0a3a.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/c3303.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/c3303.json/default/QuickType.elm
index d5a26b6..9c4be74 100644
--- a/base/elm/test/inputs/json/misc/c3303.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/c3303.json/default/QuickType.elm
@@ -449,6 +449,14 @@ encodePagination x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/c6cfd.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/c6cfd.json/default/QuickType.elm
index cd39c55..43555e3 100644
--- a/base/elm/test/inputs/json/misc/c6cfd.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/c6cfd.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeCountry x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/c8c7e.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/c8c7e.json/default/QuickType.elm
index 7eab484..10587e1 100644
--- a/base/elm/test/inputs/json/misc/c8c7e.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/c8c7e.json/default/QuickType.elm
@@ -169,6 +169,14 @@ encodeFluffyQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/cb0cc.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/cb0cc.json/default/QuickType.elm
index 3743762..2d21d7b 100644
--- a/base/elm/test/inputs/json/misc/cb0cc.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/cb0cc.json/default/QuickType.elm
@@ -135,6 +135,14 @@ encodeLaureate x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/cb81e.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/cb81e.json/default/QuickType.elm
index 9354bd5..2ee6a9e 100644
--- a/base/elm/test/inputs/json/misc/cb81e.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/cb81e.json/default/QuickType.elm
@@ -55,7 +55,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("data", Jenc.dict identity Jenc.string x.data)
+        [ ("data", makeDictEncoder identity Jenc.string x.data)
         , ("description", encodeDescription x.description)
         ]
 
@@ -78,6 +78,14 @@ encodeDescription x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/ccd18.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/ccd18.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/ccd18.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/ccd18.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/cd238.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/cd238.json/default/QuickType.elm
index 99bdd61..48f1aa5 100644
--- a/base/elm/test/inputs/json/misc/cd238.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/cd238.json/default/QuickType.elm
@@ -161,6 +161,14 @@ encodeMeta x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/cd463.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/cd463.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/cd463.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/cd463.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/cda6c.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/cda6c.json/default/QuickType.elm
index cabb86b..572a296 100644
--- a/base/elm/test/inputs/json/misc/cda6c.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/cda6c.json/default/QuickType.elm
@@ -169,6 +169,14 @@ encodeFluffyQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/cf0d8.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/cf0d8.json/default/QuickType.elm
index 3f9c3a4..d002683 100644
--- a/base/elm/test/inputs/json/misc/cf0d8.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/cf0d8.json/default/QuickType.elm
@@ -396,6 +396,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/cfbce.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/cfbce.json/default/QuickType.elm
index a54c0ff..02718b9 100644
--- a/base/elm/test/inputs/json/misc/cfbce.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/cfbce.json/default/QuickType.elm
@@ -51,11 +51,19 @@ encodeQuickType x =
     Jenc.object
         [ ("base", Jenc.string x.base)
         , ("date", Jenc.string x.date)
-        , ("rates", Jenc.dict identity Jenc.float x.rates)
+        , ("rates", makeDictEncoder identity Jenc.float x.rates)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/d0908.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/d0908.json/default/QuickType.elm
index 9814b2b..ade0ad8 100644
--- a/base/elm/test/inputs/json/misc/d0908.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/d0908.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeTotalPopulation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/d23d5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/d23d5.json/default/QuickType.elm
index e02d1f0..16cf8f3 100644
--- a/base/elm/test/inputs/json/misc/d23d5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/d23d5.json/default/QuickType.elm
@@ -114,6 +114,14 @@ encodeResult x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/dbfb3.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/dbfb3.json/default/QuickType.elm
index 716da05..cbaeaa5 100644
--- a/base/elm/test/inputs/json/misc/dbfb3.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/dbfb3.json/default/QuickType.elm
@@ -416,6 +416,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/dc44f.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/dc44f.json/default/QuickType.elm
index 3481be1..5d5f2f2 100644
--- a/base/elm/test/inputs/json/misc/dc44f.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/dc44f.json/default/QuickType.elm
@@ -512,6 +512,14 @@ encodeType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/dd1ce.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/dd1ce.json/default/QuickType.elm
index 3481be1..5d5f2f2 100644
--- a/base/elm/test/inputs/json/misc/dd1ce.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/dd1ce.json/default/QuickType.elm
@@ -512,6 +512,14 @@ encodeType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/dec3a.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/dec3a.json/default/QuickType.elm
index bf58388..8304871 100644
--- a/base/elm/test/inputs/json/misc/dec3a.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/dec3a.json/default/QuickType.elm
@@ -257,6 +257,14 @@ encodeLocation x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/df957.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/df957.json/default/QuickType.elm
index 3f9c3a4..d002683 100644
--- a/base/elm/test/inputs/json/misc/df957.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/df957.json/default/QuickType.elm
@@ -396,6 +396,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/e0ac7.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/e0ac7.json/default/QuickType.elm
index a52a067..be7e521 100644
--- a/base/elm/test/inputs/json/misc/e0ac7.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/e0ac7.json/default/QuickType.elm
@@ -432,6 +432,14 @@ encodePagination x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/e2915.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/e2915.json/default/QuickType.elm
index d42858e..e236b73 100644
--- a/base/elm/test/inputs/json/misc/e2915.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/e2915.json/default/QuickType.elm
@@ -413,6 +413,14 @@ encodeWind x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/e2a58.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/e2a58.json/default/QuickType.elm
index 68c8fd8..8755176 100644
--- a/base/elm/test/inputs/json/misc/e2a58.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/e2a58.json/default/QuickType.elm
@@ -59,6 +59,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/e324e.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/e324e.json/default/QuickType.elm
index 598ab89..a3f7298 100644
--- a/base/elm/test/inputs/json/misc/e324e.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/e324e.json/default/QuickType.elm
@@ -166,7 +166,7 @@ rate =
 encodeRate : Rate -> Jenc.Value
 encodeRate x =
     Jenc.object
-        [ ("properties", Jenc.dict identity encodeProperty x.properties)
+        [ ("properties", makeDictEncoder identity encodeProperty x.properties)
         ]
 
 property : Jdec.Decoder Property
@@ -322,6 +322,14 @@ encodeItems x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/e53b5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/e53b5.json/default/QuickType.elm
index e2b58b8..a986530 100644
--- a/base/elm/test/inputs/json/misc/e53b5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/e53b5.json/default/QuickType.elm
@@ -169,6 +169,14 @@ encodeFluffyQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/e64a0.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/e64a0.json/default/QuickType.elm
index 28a3160..35ad117 100644
--- a/base/elm/test/inputs/json/misc/e64a0.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/e64a0.json/default/QuickType.elm
@@ -99,6 +99,14 @@ encodeHeaders x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/e8a0b.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/e8a0b.json/default/QuickType.elm
index 9bf4795..0e4b4eb 100644
--- a/base/elm/test/inputs/json/misc/e8a0b.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/e8a0b.json/default/QuickType.elm
@@ -88,6 +88,14 @@ encodeCountry x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/e8b04.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/e8b04.json/default/QuickType.elm
index 3b58e64..a04aab9 100644
--- a/base/elm/test/inputs/json/misc/e8b04.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/e8b04.json/default/QuickType.elm
@@ -1112,6 +1112,14 @@ encodeViewType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/ed095.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/ed095.json/default/QuickType.elm
index 7c5f919..323836c 100644
--- a/base/elm/test/inputs/json/misc/ed095.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/ed095.json/default/QuickType.elm
@@ -36,10 +36,18 @@ quickType : Jdec.Decoder QuickType
 quickType = Jdec.dict Jdec.string
 
 quickTypeToString : QuickType -> String
-quickTypeToString r = Jenc.encode 0 (Jenc.dict identity Jenc.string r)
+quickTypeToString r = Jenc.encode 0 (makeDictEncoder identity Jenc.string r)
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/f22f5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/f22f5.json/default/QuickType.elm
index 2285943..a5a715a 100644
--- a/base/elm/test/inputs/json/misc/f22f5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/f22f5.json/default/QuickType.elm
@@ -390,6 +390,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/f3139.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/f3139.json/default/QuickType.elm
index fe2af9e..7b62e14 100644
--- a/base/elm/test/inputs/json/misc/f3139.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/f3139.json/default/QuickType.elm
@@ -59,6 +59,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/f3edf.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/f3edf.json/default/QuickType.elm
index 9bf4795..0e4b4eb 100644
--- a/base/elm/test/inputs/json/misc/f3edf.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/f3edf.json/default/QuickType.elm
@@ -88,6 +88,14 @@ encodeCountry x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/f466a.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/f466a.json/default/QuickType.elm
index 9bf4795..0e4b4eb 100644
--- a/base/elm/test/inputs/json/misc/f466a.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/f466a.json/default/QuickType.elm
@@ -88,6 +88,14 @@ encodeCountry x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/f6a65.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/f6a65.json/default/QuickType.elm
index 9581250..51ed9ac 100644
--- a/base/elm/test/inputs/json/misc/f6a65.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/f6a65.json/default/QuickType.elm
@@ -461,6 +461,14 @@ encodePagination x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/f74d5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/f74d5.json/default/QuickType.elm
index 6287859..60ea94e 100644
--- a/base/elm/test/inputs/json/misc/f74d5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/f74d5.json/default/QuickType.elm
@@ -467,6 +467,14 @@ encodeOwner x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/f82d9.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/f82d9.json/default/QuickType.elm
index 07538a5..7939960 100644
--- a/base/elm/test/inputs/json/misc/f82d9.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/f82d9.json/default/QuickType.elm
@@ -365,6 +365,14 @@ encodeItems x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/f974d.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/f974d.json/default/QuickType.elm
index 95b13eb..c5f38af 100644
--- a/base/elm/test/inputs/json/misc/f974d.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/f974d.json/default/QuickType.elm
@@ -62,6 +62,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/faff5.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/faff5.json/default/QuickType.elm
index 6a87fd6..6a71957 100644
--- a/base/elm/test/inputs/json/misc/faff5.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/faff5.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeResponse x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/fcca3.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/fcca3.json/default/QuickType.elm
index b794ac4..f286748 100644
--- a/base/elm/test/inputs/json/misc/fcca3.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/fcca3.json/default/QuickType.elm
@@ -819,6 +819,14 @@ encodeExpression x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/misc/fd329.json/default/QuickType.elm b/head/elm/test/inputs/json/misc/fd329.json/default/QuickType.elm
index b7adef0..8b79e00 100644
--- a/base/elm/test/inputs/json/misc/fd329.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/misc/fd329.json/default/QuickType.elm
@@ -61,7 +61,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("data", Jenc.dict identity encodeDatum x.data)
+        [ ("data", makeDictEncoder identity encodeDatum x.data)
         , ("description", encodeDescription x.description)
         ]
 
@@ -97,6 +97,14 @@ encodeDescription x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/blns-object.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/blns-object.json/default/QuickType.elm
index 456066f..7bdcf21 100644
--- a/base/elm/test/inputs/json/priority/blns-object.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/blns-object.json/default/QuickType.elm
@@ -1847,6 +1847,14 @@ encodeC x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/bug2037.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/bug2037.json/default/QuickType.elm
index 2be329e..ca3faea 100644
--- a/base/elm/test/inputs/json/priority/bug2037.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/bug2037.json/default/QuickType.elm
@@ -60,7 +60,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("mission_specs", Jenc.dict identity encodeMissionSpec x.missionSpecs)
+        [ ("mission_specs", makeDictEncoder identity encodeMissionSpec x.missionSpecs)
         ]
 
 missionSpec : Jdec.Decoder MissionSpec
@@ -71,7 +71,7 @@ missionSpec =
 encodeMissionSpec : MissionSpec -> Jenc.Value
 encodeMissionSpec x =
     Jenc.object
-        [ ("objectives", Jenc.dict identity encodeObjective x.objectives)
+        [ ("objectives", makeDictEncoder identity encodeObjective x.objectives)
         ]
 
 objective : Jdec.Decoder Objective
@@ -82,7 +82,7 @@ objective =
 encodeObjective : Objective -> Jenc.Value
 encodeObjective x =
     Jenc.object
-        [ ("rewards", Jenc.dict identity encodeReward x.rewards)
+        [ ("rewards", makeDictEncoder identity encodeReward x.rewards)
         ]
 
 reward : Jdec.Decoder Reward
@@ -97,6 +97,14 @@ encodeReward x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/bug2521.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/bug2521.json/default/QuickType.elm
index f39d5e2..9fbe17d 100644
--- a/base/elm/test/inputs/json/priority/bug2521.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/bug2521.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeOption x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/bug2590.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/bug2590.json/default/QuickType.elm
index c4b50ad..65cd938 100644
--- a/base/elm/test/inputs/json/priority/bug2590.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/bug2590.json/default/QuickType.elm
@@ -72,6 +72,14 @@ encodeInvoice x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/bug2663.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/bug2663.json/default/QuickType.elm
index e831733..a945b12 100644
--- a/base/elm/test/inputs/json/priority/bug2663.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/bug2663.json/default/QuickType.elm
@@ -56,6 +56,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/bug2793.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/bug2793.json/default/QuickType.elm
index 2602b3e..3d3ff94 100644
--- a/base/elm/test/inputs/json/priority/bug2793.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/bug2793.json/default/QuickType.elm
@@ -87,6 +87,14 @@ encodeLabels x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/bug855-short.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/bug855-short.json/default/QuickType.elm
index 6af0100..dd2a1cb 100644
--- a/base/elm/test/inputs/json/priority/bug855-short.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/bug855-short.json/default/QuickType.elm
@@ -45,7 +45,7 @@ quickType : Jdec.Decoder QuickType
 quickType = Jdec.dict quickTypeValue
 
 quickTypeToString : QuickType -> String
-quickTypeToString r = Jenc.encode 0 (Jenc.dict identity encodeQuickTypeValue r)
+quickTypeToString r = Jenc.encode 0 (makeDictEncoder identity encodeQuickTypeValue r)
 
 quickTypeValue : Jdec.Decoder QuickTypeValue
 quickTypeValue =
@@ -68,6 +68,14 @@ encodeQuickTypeValue x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/bug863.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/bug863.json/default/QuickType.elm
index 000d7d5..8602f71 100644
--- a/base/elm/test/inputs/json/priority/bug863.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/bug863.json/default/QuickType.elm
@@ -374,6 +374,14 @@ encodeFluffyQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/coin-pairs.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/coin-pairs.json/default/QuickType.elm
index a735414..8819cc5 100644
--- a/base/elm/test/inputs/json/priority/coin-pairs.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/coin-pairs.json/default/QuickType.elm
@@ -59,7 +59,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("pairs", Jenc.dict identity encodePair x.pairs)
+        [ ("pairs", makeDictEncoder identity encodePair x.pairs)
         , ("server_time", Jenc.int x.serverTime)
         ]
 
@@ -90,6 +90,14 @@ encodePair x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combinations1.json/array-type-array--eed288b23e27/QuickType.elm b/head/elm/test/inputs/json/priority/combinations1.json/array-type-array--eed288b23e27/QuickType.elm
index c216af5..04e92aa 100644
--- a/base/elm/test/inputs/json/priority/combinations1.json/array-type-array--eed288b23e27/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combinations1.json/array-type-array--eed288b23e27/QuickType.elm
@@ -642,7 +642,7 @@ encodeQuickType x =
         , ("fuzzy", Jenc.array encodeFuzzy x.fuzzy)
         , ("gardenwards", Jenc.array encodeGardenward x.gardenwards)
         , ("generalissimo", Jenc.array encodeGeneralissimo x.generalissimo)
-        , ("habeas", Jenc.array (makeNullableEncoder (Jenc.dict identity Jenc.int)) x.habeas)
+        , ("habeas", Jenc.array (makeNullableEncoder (makeDictEncoder identity Jenc.int)) x.habeas)
         , ("hemicrystalline", Jenc.array encodeHemicrystalline x.hemicrystalline)
         , ("hemocoele", Jenc.array encodeHemocoeleElement x.hemocoele)
         , ("hoister", Jenc.array encodeHoister x.hoister)
@@ -916,7 +916,7 @@ consilience =
 encodeConsilience : Consilience -> Jenc.Value
 encodeConsilience x = case x of
     DoubleInConsilience y -> Jenc.float y
-    IntegerMapInConsilience y -> Jenc.dict identity Jenc.int y
+    IntegerMapInConsilience y -> makeDictEncoder identity Jenc.int y
 
 constructor : Jdec.Decoder Constructor
 constructor =
@@ -928,7 +928,7 @@ constructor =
 encodeConstructor : Constructor -> Jenc.Value
 encodeConstructor x = case x of
     BoolInConstructor y -> Jenc.bool y
-    UnionMapInConstructor y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInConstructor y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 continuative : Jdec.Decoder Continuative
 continuative =
@@ -940,7 +940,7 @@ continuative =
 encodeContinuative : Continuative -> Jenc.Value
 encodeContinuative x = case x of
     StringInContinuative y -> Jenc.string y
-    IntegerMapInContinuative y -> Jenc.dict identity Jenc.int y
+    IntegerMapInContinuative y -> makeDictEncoder identity Jenc.int y
 
 credulityElement : Jdec.Decoder CredulityElement
 credulityElement =
@@ -1017,7 +1017,7 @@ encodeCreviced : Creviced -> Jenc.Value
 encodeCreviced x = case x of
     BoolInCreviced y -> Jenc.bool y
     StringInCreviced y -> Jenc.string y
-    IntegerMapInCreviced y -> Jenc.dict identity Jenc.int y
+    IntegerMapInCreviced y -> makeDictEncoder identity Jenc.int y
 
 deruralizeElement : Jdec.Decoder DeruralizeElement
 deruralizeElement =
@@ -1171,7 +1171,7 @@ encodeEleutheromania : Eleutheromania -> Jenc.Value
 encodeEleutheromania x = case x of
     StringInEleutheromania y -> Jenc.string y
     DoubleInEleutheromania y -> Jenc.float y
-    IntegerMapInEleutheromania y -> Jenc.dict identity Jenc.int y
+    IntegerMapInEleutheromania y -> makeDictEncoder identity Jenc.int y
 
 encrust : Jdec.Decoder Encrust
 encrust =
@@ -1469,7 +1469,7 @@ fuzzy =
 encodeFuzzy : Fuzzy -> Jenc.Value
 encodeFuzzy x = case x of
     IntegerInFuzzy y -> Jenc.int y
-    UnionMapInFuzzy y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInFuzzy y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 gardenward : Jdec.Decoder Gardenward
 gardenward =
@@ -1497,7 +1497,7 @@ encodeGeneralissimo : Generalissimo -> Jenc.Value
 encodeGeneralissimo x = case x of
     BoolInGeneralissimo y -> Jenc.bool y
     NullInGeneralissimo -> Jenc.null
-    IntegerMapInGeneralissimo y -> Jenc.dict identity Jenc.int y
+    IntegerMapInGeneralissimo y -> makeDictEncoder identity Jenc.int y
 
 hemicrystalline : Jdec.Decoder Hemicrystalline
 hemicrystalline =
@@ -1695,10 +1695,18 @@ jacutinga =
 encodeJacutinga : Jacutinga -> Jenc.Value
 encodeJacutinga x = case x of
     IntegerArrayInJacutinga y -> Jenc.array Jenc.int y
-    UnionMapInJacutinga y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInJacutinga y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combinations1.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/combinations1.json/default/QuickType.elm
index 8d42014..1734735 100644
--- a/base/elm/test/inputs/json/priority/combinations1.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combinations1.json/default/QuickType.elm
@@ -641,7 +641,7 @@ encodeQuickType x =
         , ("fuzzy", Jenc.list encodeFuzzy x.fuzzy)
         , ("gardenwards", Jenc.list encodeGardenward x.gardenwards)
         , ("generalissimo", Jenc.list encodeGeneralissimo x.generalissimo)
-        , ("habeas", Jenc.list (makeNullableEncoder (Jenc.dict identity Jenc.int)) x.habeas)
+        , ("habeas", Jenc.list (makeNullableEncoder (makeDictEncoder identity Jenc.int)) x.habeas)
         , ("hemicrystalline", Jenc.list encodeHemicrystalline x.hemicrystalline)
         , ("hemocoele", Jenc.list encodeHemocoeleElement x.hemocoele)
         , ("hoister", Jenc.list encodeHoister x.hoister)
@@ -915,7 +915,7 @@ consilience =
 encodeConsilience : Consilience -> Jenc.Value
 encodeConsilience x = case x of
     DoubleInConsilience y -> Jenc.float y
-    IntegerMapInConsilience y -> Jenc.dict identity Jenc.int y
+    IntegerMapInConsilience y -> makeDictEncoder identity Jenc.int y
 
 constructor : Jdec.Decoder Constructor
 constructor =
@@ -927,7 +927,7 @@ constructor =
 encodeConstructor : Constructor -> Jenc.Value
 encodeConstructor x = case x of
     BoolInConstructor y -> Jenc.bool y
-    UnionMapInConstructor y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInConstructor y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 continuative : Jdec.Decoder Continuative
 continuative =
@@ -939,7 +939,7 @@ continuative =
 encodeContinuative : Continuative -> Jenc.Value
 encodeContinuative x = case x of
     StringInContinuative y -> Jenc.string y
-    IntegerMapInContinuative y -> Jenc.dict identity Jenc.int y
+    IntegerMapInContinuative y -> makeDictEncoder identity Jenc.int y
 
 credulityElement : Jdec.Decoder CredulityElement
 credulityElement =
@@ -1016,7 +1016,7 @@ encodeCreviced : Creviced -> Jenc.Value
 encodeCreviced x = case x of
     BoolInCreviced y -> Jenc.bool y
     StringInCreviced y -> Jenc.string y
-    IntegerMapInCreviced y -> Jenc.dict identity Jenc.int y
+    IntegerMapInCreviced y -> makeDictEncoder identity Jenc.int y
 
 deruralizeElement : Jdec.Decoder DeruralizeElement
 deruralizeElement =
@@ -1170,7 +1170,7 @@ encodeEleutheromania : Eleutheromania -> Jenc.Value
 encodeEleutheromania x = case x of
     StringInEleutheromania y -> Jenc.string y
     DoubleInEleutheromania y -> Jenc.float y
-    IntegerMapInEleutheromania y -> Jenc.dict identity Jenc.int y
+    IntegerMapInEleutheromania y -> makeDictEncoder identity Jenc.int y
 
 encrust : Jdec.Decoder Encrust
 encrust =
@@ -1468,7 +1468,7 @@ fuzzy =
 encodeFuzzy : Fuzzy -> Jenc.Value
 encodeFuzzy x = case x of
     IntegerInFuzzy y -> Jenc.int y
-    UnionMapInFuzzy y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInFuzzy y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 gardenward : Jdec.Decoder Gardenward
 gardenward =
@@ -1496,7 +1496,7 @@ encodeGeneralissimo : Generalissimo -> Jenc.Value
 encodeGeneralissimo x = case x of
     BoolInGeneralissimo y -> Jenc.bool y
     NullInGeneralissimo -> Jenc.null
-    IntegerMapInGeneralissimo y -> Jenc.dict identity Jenc.int y
+    IntegerMapInGeneralissimo y -> makeDictEncoder identity Jenc.int y
 
 hemicrystalline : Jdec.Decoder Hemicrystalline
 hemicrystalline =
@@ -1694,10 +1694,18 @@ jacutinga =
 encodeJacutinga : Jacutinga -> Jenc.Value
 encodeJacutinga x = case x of
     IntegerArrayInJacutinga y -> Jenc.list Jenc.int y
-    UnionMapInJacutinga y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInJacutinga y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combinations2.json/array-type-array--eed288b23e27/QuickType.elm b/head/elm/test/inputs/json/priority/combinations2.json/array-type-array--eed288b23e27/QuickType.elm
index ebd3231..b0b1001 100644
--- a/base/elm/test/inputs/json/priority/combinations2.json/array-type-array--eed288b23e27/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combinations2.json/array-type-array--eed288b23e27/QuickType.elm
@@ -579,13 +579,13 @@ encodeQuickType x =
         , ("amphithyron", Jenc.array (makeNullableEncoder encodeAmphithyron) x.amphithyron)
         , ("Andriana", Jenc.array (makeNullableEncoder Jenc.string) x.andriana)
         , ("ankee", Jenc.array encodeAnkeeElement x.ankee)
-        , ("annihilator", Jenc.array (makeNullableEncoder (Jenc.dict identity (makeNullableEncoder Jenc.int))) x.annihilator)
+        , ("annihilator", Jenc.array (makeNullableEncoder (makeDictEncoder identity (makeNullableEncoder Jenc.int))) x.annihilator)
         , ("annulose", always Jenc.null x.annulose)
         , ("Ansarie", Jenc.array encodeAnsarieElement x.ansarie)
         , ("aphasia", Jenc.array encodeAphasia x.aphasia)
         , ("asprawl", Jenc.array encodeAsprawl x.asprawl)
         , ("attractive", Jenc.array (makeNullableEncoder Jenc.bool) x.attractive)
-        , ("barksome", Jenc.dict identity Jenc.int x.barksome)
+        , ("barksome", makeDictEncoder identity Jenc.int x.barksome)
         , ("bedesman", Jenc.array encodeBedesman x.bedesman)
         , ("belard", Jenc.array encodeBelard x.belard)
         , ("bocking", Jenc.array encodeBocking x.bocking)
@@ -612,7 +612,7 @@ encodeQuickType x =
         , ("School", Jenc.array encodeSchool x.school)
         , ("Shakespearolater", Jenc.array encodeShakespearolater x.shakespearolater)
         , ("Svan", Jenc.array Jenc.float x.svan)
-        , ("Wayao", Jenc.dict identity Jenc.float x.wayao)
+        , ("Wayao", makeDictEncoder identity Jenc.float x.wayao)
         ]
 
 abranchiata : Jdec.Decoder Abranchiata
@@ -641,7 +641,7 @@ encodeAcademe : Academe -> Jenc.Value
 encodeAcademe x = case x of
     IntegerArrayInAcademe y -> Jenc.array Jenc.int y
     IntegerInAcademe y -> Jenc.int y
-    IntegerMapInAcademe y -> Jenc.dict identity Jenc.int y
+    IntegerMapInAcademe y -> makeDictEncoder identity Jenc.int y
 
 acquirable : Jdec.Decoder Acquirable
 acquirable =
@@ -653,7 +653,7 @@ acquirable =
 encodeAcquirable : Acquirable -> Jenc.Value
 encodeAcquirable x = case x of
     UnionArrayInAcquirable y -> Jenc.array (makeNullableEncoder Jenc.int) y
-    IntegerMapInAcquirable y -> Jenc.dict identity Jenc.int y
+    IntegerMapInAcquirable y -> makeDictEncoder identity Jenc.int y
 
 aerometry : Jdec.Decoder Aerometry
 aerometry =
@@ -1034,7 +1034,7 @@ encodeBocking : Bocking -> Jenc.Value
 encodeBocking x = case x of
     IntegerArrayInBocking y -> Jenc.array Jenc.int y
     BoolInBocking y -> Jenc.bool y
-    IntegerMapInBocking y -> Jenc.dict identity Jenc.int y
+    IntegerMapInBocking y -> makeDictEncoder identity Jenc.int y
 
 brawlingly : Jdec.Decoder Brawlingly
 brawlingly =
@@ -1046,7 +1046,7 @@ brawlingly =
 encodeBrawlingly : Brawlingly -> Jenc.Value
 encodeBrawlingly x = case x of
     NullArrayInBrawlingly y -> Jenc.array (always Jenc.null) y
-    UnionMapInBrawlingly y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInBrawlingly y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 brookie : Jdec.Decoder Brookie
 brookie =
@@ -1098,7 +1098,7 @@ encodeCatallactic : Catallactic -> Jenc.Value
 encodeCatallactic x = case x of
     NullArrayInCatallactic y -> Jenc.array (always Jenc.null) y
     BoolInCatallactic y -> Jenc.bool y
-    IntegerMapInCatallactic y -> Jenc.dict identity Jenc.int y
+    IntegerMapInCatallactic y -> makeDictEncoder identity Jenc.int y
 
 cemental : Jdec.Decoder Cemental
 cemental =
@@ -1112,7 +1112,7 @@ encodeCemental : Cemental -> Jenc.Value
 encodeCemental x = case x of
     IntegerArrayInCemental y -> Jenc.array Jenc.int y
     DoubleInCemental y -> Jenc.float y
-    IntegerMapInCemental y -> Jenc.dict identity Jenc.int y
+    IntegerMapInCemental y -> makeDictEncoder identity Jenc.int y
 
 chytridiaceaeElement : Jdec.Decoder ChytridiaceaeElement
 chytridiaceaeElement =
@@ -1284,7 +1284,7 @@ eupatorium =
 encodeEupatorium : Eupatorium -> Jenc.Value
 encodeEupatorium x = case x of
     NullArrayInEupatorium y -> Jenc.array (always Jenc.null) y
-    IntegerMapInEupatorium y -> Jenc.dict identity Jenc.int y
+    IntegerMapInEupatorium y -> makeDictEncoder identity Jenc.int y
 
 gryphosaurusElement : Jdec.Decoder GryphosaurusElement
 gryphosaurusElement =
@@ -1359,7 +1359,7 @@ koryak =
 encodeKoryak : Koryak -> Jenc.Value
 encodeKoryak x = case x of
     StringInKoryak y -> Jenc.string y
-    UnionMapInKoryak y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInKoryak y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 laviniaElement : Jdec.Decoder LaviniaElement
 laviniaElement =
@@ -1547,7 +1547,7 @@ encodeSchool : School -> Jenc.Value
 encodeSchool x = case x of
     IntegerInSchool y -> Jenc.int y
     NullInSchool -> Jenc.null
-    IntegerMapInSchool y -> Jenc.dict identity Jenc.int y
+    IntegerMapInSchool y -> makeDictEncoder identity Jenc.int y
 
 shakespearolater : Jdec.Decoder Shakespearolater
 shakespearolater =
@@ -1565,6 +1565,14 @@ encodeShakespearolater x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combinations2.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/combinations2.json/default/QuickType.elm
index 3d9652b..adec549 100644
--- a/base/elm/test/inputs/json/priority/combinations2.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combinations2.json/default/QuickType.elm
@@ -578,13 +578,13 @@ encodeQuickType x =
         , ("amphithyron", Jenc.list (makeNullableEncoder encodeAmphithyron) x.amphithyron)
         , ("Andriana", Jenc.list (makeNullableEncoder Jenc.string) x.andriana)
         , ("ankee", Jenc.list encodeAnkeeElement x.ankee)
-        , ("annihilator", Jenc.list (makeNullableEncoder (Jenc.dict identity (makeNullableEncoder Jenc.int))) x.annihilator)
+        , ("annihilator", Jenc.list (makeNullableEncoder (makeDictEncoder identity (makeNullableEncoder Jenc.int))) x.annihilator)
         , ("annulose", always Jenc.null x.annulose)
         , ("Ansarie", Jenc.list encodeAnsarieElement x.ansarie)
         , ("aphasia", Jenc.list encodeAphasia x.aphasia)
         , ("asprawl", Jenc.list encodeAsprawl x.asprawl)
         , ("attractive", Jenc.list (makeNullableEncoder Jenc.bool) x.attractive)
-        , ("barksome", Jenc.dict identity Jenc.int x.barksome)
+        , ("barksome", makeDictEncoder identity Jenc.int x.barksome)
         , ("bedesman", Jenc.list encodeBedesman x.bedesman)
         , ("belard", Jenc.list encodeBelard x.belard)
         , ("bocking", Jenc.list encodeBocking x.bocking)
@@ -611,7 +611,7 @@ encodeQuickType x =
         , ("School", Jenc.list encodeSchool x.school)
         , ("Shakespearolater", Jenc.list encodeShakespearolater x.shakespearolater)
         , ("Svan", Jenc.list Jenc.float x.svan)
-        , ("Wayao", Jenc.dict identity Jenc.float x.wayao)
+        , ("Wayao", makeDictEncoder identity Jenc.float x.wayao)
         ]
 
 abranchiata : Jdec.Decoder Abranchiata
@@ -640,7 +640,7 @@ encodeAcademe : Academe -> Jenc.Value
 encodeAcademe x = case x of
     IntegerArrayInAcademe y -> Jenc.list Jenc.int y
     IntegerInAcademe y -> Jenc.int y
-    IntegerMapInAcademe y -> Jenc.dict identity Jenc.int y
+    IntegerMapInAcademe y -> makeDictEncoder identity Jenc.int y
 
 acquirable : Jdec.Decoder Acquirable
 acquirable =
@@ -652,7 +652,7 @@ acquirable =
 encodeAcquirable : Acquirable -> Jenc.Value
 encodeAcquirable x = case x of
     UnionArrayInAcquirable y -> Jenc.list (makeNullableEncoder Jenc.int) y
-    IntegerMapInAcquirable y -> Jenc.dict identity Jenc.int y
+    IntegerMapInAcquirable y -> makeDictEncoder identity Jenc.int y
 
 aerometry : Jdec.Decoder Aerometry
 aerometry =
@@ -1033,7 +1033,7 @@ encodeBocking : Bocking -> Jenc.Value
 encodeBocking x = case x of
     IntegerArrayInBocking y -> Jenc.list Jenc.int y
     BoolInBocking y -> Jenc.bool y
-    IntegerMapInBocking y -> Jenc.dict identity Jenc.int y
+    IntegerMapInBocking y -> makeDictEncoder identity Jenc.int y
 
 brawlingly : Jdec.Decoder Brawlingly
 brawlingly =
@@ -1045,7 +1045,7 @@ brawlingly =
 encodeBrawlingly : Brawlingly -> Jenc.Value
 encodeBrawlingly x = case x of
     NullArrayInBrawlingly y -> Jenc.list (always Jenc.null) y
-    UnionMapInBrawlingly y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInBrawlingly y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 brookie : Jdec.Decoder Brookie
 brookie =
@@ -1097,7 +1097,7 @@ encodeCatallactic : Catallactic -> Jenc.Value
 encodeCatallactic x = case x of
     NullArrayInCatallactic y -> Jenc.list (always Jenc.null) y
     BoolInCatallactic y -> Jenc.bool y
-    IntegerMapInCatallactic y -> Jenc.dict identity Jenc.int y
+    IntegerMapInCatallactic y -> makeDictEncoder identity Jenc.int y
 
 cemental : Jdec.Decoder Cemental
 cemental =
@@ -1111,7 +1111,7 @@ encodeCemental : Cemental -> Jenc.Value
 encodeCemental x = case x of
     IntegerArrayInCemental y -> Jenc.list Jenc.int y
     DoubleInCemental y -> Jenc.float y
-    IntegerMapInCemental y -> Jenc.dict identity Jenc.int y
+    IntegerMapInCemental y -> makeDictEncoder identity Jenc.int y
 
 chytridiaceaeElement : Jdec.Decoder ChytridiaceaeElement
 chytridiaceaeElement =
@@ -1283,7 +1283,7 @@ eupatorium =
 encodeEupatorium : Eupatorium -> Jenc.Value
 encodeEupatorium x = case x of
     NullArrayInEupatorium y -> Jenc.list (always Jenc.null) y
-    IntegerMapInEupatorium y -> Jenc.dict identity Jenc.int y
+    IntegerMapInEupatorium y -> makeDictEncoder identity Jenc.int y
 
 gryphosaurusElement : Jdec.Decoder GryphosaurusElement
 gryphosaurusElement =
@@ -1358,7 +1358,7 @@ koryak =
 encodeKoryak : Koryak -> Jenc.Value
 encodeKoryak x = case x of
     StringInKoryak y -> Jenc.string y
-    UnionMapInKoryak y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInKoryak y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 laviniaElement : Jdec.Decoder LaviniaElement
 laviniaElement =
@@ -1546,7 +1546,7 @@ encodeSchool : School -> Jenc.Value
 encodeSchool x = case x of
     IntegerInSchool y -> Jenc.int y
     NullInSchool -> Jenc.null
-    IntegerMapInSchool y -> Jenc.dict identity Jenc.int y
+    IntegerMapInSchool y -> makeDictEncoder identity Jenc.int y
 
 shakespearolater : Jdec.Decoder Shakespearolater
 shakespearolater =
@@ -1564,6 +1564,14 @@ encodeShakespearolater x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combinations3.json/array-type-array--eed288b23e27/QuickType.elm b/head/elm/test/inputs/json/priority/combinations3.json/array-type-array--eed288b23e27/QuickType.elm
index b7a4fb5..95c4162 100644
--- a/base/elm/test/inputs/json/priority/combinations3.json/array-type-array--eed288b23e27/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combinations3.json/array-type-array--eed288b23e27/QuickType.elm
@@ -714,7 +714,7 @@ encodeQuickType x =
         , ("prefreshman", Jenc.array encodePrefreshmanElement x.prefreshman)
         , ("prehensility", Jenc.array encodePrehensility x.prehensility)
         , ("prevoidance", Jenc.array encodePrevoidance x.prevoidance)
-        , ("probant", Jenc.array (Jenc.dict identity (makeNullableEncoder Jenc.int)) x.probant)
+        , ("probant", Jenc.array (makeDictEncoder identity (makeNullableEncoder Jenc.int)) x.probant)
         , ("protext", Jenc.array encodeProtext x.protext)
         ]
 
@@ -789,7 +789,7 @@ kongoni =
 encodeKongoni : Kongoni -> Jenc.Value
 encodeKongoni x = case x of
     IntegerArrayInKongoni y -> Jenc.array Jenc.int y
-    IntegerMapInKongoni y -> Jenc.dict identity Jenc.int y
+    IntegerMapInKongoni y -> makeDictEncoder identity Jenc.int y
 
 ladronismElement : Jdec.Decoder LadronismElement
 ladronismElement =
@@ -1462,7 +1462,7 @@ paleographically =
 encodePaleographically : Paleographically -> Jenc.Value
 encodePaleographically x = case x of
     DoubleInPaleographically y -> Jenc.float y
-    UnionMapInPaleographically y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInPaleographically y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 pamphletwise : Jdec.Decoder Pamphletwise
 pamphletwise =
@@ -1476,7 +1476,7 @@ encodePamphletwise : Pamphletwise -> Jenc.Value
 encodePamphletwise x = case x of
     IntegerInPamphletwise y -> Jenc.int y
     StringInPamphletwise y -> Jenc.string y
-    IntegerMapInPamphletwise y -> Jenc.dict identity Jenc.int y
+    IntegerMapInPamphletwise y -> makeDictEncoder identity Jenc.int y
 
 pediatric : Jdec.Decoder Pediatric
 pediatric =
@@ -1613,7 +1613,7 @@ placuntiti =
 encodePlacuntiti : Placuntiti -> Jenc.Value
 encodePlacuntiti x = case x of
     IntegerInPlacuntiti y -> Jenc.int y
-    IntegerMapInPlacuntiti y -> Jenc.dict identity Jenc.int y
+    IntegerMapInPlacuntiti y -> makeDictEncoder identity Jenc.int y
 
 plectopterous : Jdec.Decoder Plectopterous
 plectopterous =
@@ -1625,7 +1625,7 @@ plectopterous =
 encodePlectopterous : Plectopterous -> Jenc.Value
 encodePlectopterous x = case x of
     DoubleInPlectopterous y -> Jenc.float y
-    IntegerMapInPlectopterous y -> Jenc.dict identity Jenc.int y
+    IntegerMapInPlectopterous y -> makeDictEncoder identity Jenc.int y
 
 pneumocele : Jdec.Decoder Pneumocele
 pneumocele =
@@ -1710,7 +1710,7 @@ encodePoormaster : Poormaster -> Jenc.Value
 encodePoormaster x = case x of
     IntegerArrayInPoormaster y -> Jenc.array Jenc.int y
     NullInPoormaster -> Jenc.null
-    IntegerMapInPoormaster y -> Jenc.dict identity Jenc.int y
+    IntegerMapInPoormaster y -> makeDictEncoder identity Jenc.int y
 
 potwhiskyElement : Jdec.Decoder PotwhiskyElement
 potwhiskyElement =
@@ -1896,6 +1896,14 @@ encodeProtext x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combinations3.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/combinations3.json/default/QuickType.elm
index 8e8d31e..5e0c29d 100644
--- a/base/elm/test/inputs/json/priority/combinations3.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combinations3.json/default/QuickType.elm
@@ -713,7 +713,7 @@ encodeQuickType x =
         , ("prefreshman", Jenc.list encodePrefreshmanElement x.prefreshman)
         , ("prehensility", Jenc.list encodePrehensility x.prehensility)
         , ("prevoidance", Jenc.list encodePrevoidance x.prevoidance)
-        , ("probant", Jenc.list (Jenc.dict identity (makeNullableEncoder Jenc.int)) x.probant)
+        , ("probant", Jenc.list (makeDictEncoder identity (makeNullableEncoder Jenc.int)) x.probant)
         , ("protext", Jenc.list encodeProtext x.protext)
         ]
 
@@ -788,7 +788,7 @@ kongoni =
 encodeKongoni : Kongoni -> Jenc.Value
 encodeKongoni x = case x of
     IntegerArrayInKongoni y -> Jenc.list Jenc.int y
-    IntegerMapInKongoni y -> Jenc.dict identity Jenc.int y
+    IntegerMapInKongoni y -> makeDictEncoder identity Jenc.int y
 
 ladronismElement : Jdec.Decoder LadronismElement
 ladronismElement =
@@ -1461,7 +1461,7 @@ paleographically =
 encodePaleographically : Paleographically -> Jenc.Value
 encodePaleographically x = case x of
     DoubleInPaleographically y -> Jenc.float y
-    UnionMapInPaleographically y -> Jenc.dict identity (makeNullableEncoder Jenc.int) y
+    UnionMapInPaleographically y -> makeDictEncoder identity (makeNullableEncoder Jenc.int) y
 
 pamphletwise : Jdec.Decoder Pamphletwise
 pamphletwise =
@@ -1475,7 +1475,7 @@ encodePamphletwise : Pamphletwise -> Jenc.Value
 encodePamphletwise x = case x of
     IntegerInPamphletwise y -> Jenc.int y
     StringInPamphletwise y -> Jenc.string y
-    IntegerMapInPamphletwise y -> Jenc.dict identity Jenc.int y
+    IntegerMapInPamphletwise y -> makeDictEncoder identity Jenc.int y
 
 pediatric : Jdec.Decoder Pediatric
 pediatric =
@@ -1612,7 +1612,7 @@ placuntiti =
 encodePlacuntiti : Placuntiti -> Jenc.Value
 encodePlacuntiti x = case x of
     IntegerInPlacuntiti y -> Jenc.int y
-    IntegerMapInPlacuntiti y -> Jenc.dict identity Jenc.int y
+    IntegerMapInPlacuntiti y -> makeDictEncoder identity Jenc.int y
 
 plectopterous : Jdec.Decoder Plectopterous
 plectopterous =
@@ -1624,7 +1624,7 @@ plectopterous =
 encodePlectopterous : Plectopterous -> Jenc.Value
 encodePlectopterous x = case x of
     DoubleInPlectopterous y -> Jenc.float y
-    IntegerMapInPlectopterous y -> Jenc.dict identity Jenc.int y
+    IntegerMapInPlectopterous y -> makeDictEncoder identity Jenc.int y
 
 pneumocele : Jdec.Decoder Pneumocele
 pneumocele =
@@ -1709,7 +1709,7 @@ encodePoormaster : Poormaster -> Jenc.Value
 encodePoormaster x = case x of
     IntegerArrayInPoormaster y -> Jenc.list Jenc.int y
     NullInPoormaster -> Jenc.null
-    IntegerMapInPoormaster y -> Jenc.dict identity Jenc.int y
+    IntegerMapInPoormaster y -> makeDictEncoder identity Jenc.int y
 
 potwhiskyElement : Jdec.Decoder PotwhiskyElement
 potwhiskyElement =
@@ -1895,6 +1895,14 @@ encodeProtext x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combinations4.json/array-type-array--eed288b23e27/QuickType.elm b/head/elm/test/inputs/json/priority/combinations4.json/array-type-array--eed288b23e27/QuickType.elm
index 9f255de..b198681 100644
--- a/base/elm/test/inputs/json/priority/combinations4.json/array-type-array--eed288b23e27/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combinations4.json/array-type-array--eed288b23e27/QuickType.elm
@@ -830,7 +830,7 @@ encodeQuickType x =
         , ("untasked", Jenc.array encodeUntasked x.untasked)
         , ("unvarying", Jenc.array encodeUnvarying x.unvarying)
         , ("vehemently", Jenc.array encodeVehemently x.vehemently)
-        , ("warriorship", Jenc.dict identity Jenc.bool x.warriorship)
+        , ("warriorship", makeDictEncoder identity Jenc.bool x.warriorship)
         , ("whitepot", Jenc.array encodeWhitepot x.whitepot)
         , ("wrothy", Jenc.array encodeWrothyElement x.wrothy)
         ]
@@ -1014,7 +1014,7 @@ querier =
 encodeQuerier : Querier -> Jenc.Value
 encodeQuerier x = case x of
     BoolInQuerier y -> Jenc.bool y
-    IntegerMapInQuerier y -> Jenc.dict identity Jenc.int y
+    IntegerMapInQuerier y -> makeDictEncoder identity Jenc.int y
 
 rebarbative : Jdec.Decoder Rebarbative
 rebarbative =
@@ -1312,7 +1312,7 @@ encodeSaprophilous : Saprophilous -> Jenc.Value
 encodeSaprophilous x = case x of
     NullInSaprophilous -> Jenc.null
     StringInSaprophilous y -> Jenc.string y
-    IntegerMapInSaprophilous y -> Jenc.dict identity Jenc.int y
+    IntegerMapInSaprophilous y -> makeDictEncoder identity Jenc.int y
 
 saxtenElement : Jdec.Decoder SaxtenElement
 saxtenElement =
@@ -1446,7 +1446,7 @@ encodeScoffer : Scoffer -> Jenc.Value
 encodeScoffer x = case x of
     NullArrayInScoffer y -> Jenc.array (always Jenc.null) y
     NullInScoffer -> Jenc.null
-    IntegerMapInScoffer y -> Jenc.dict identity Jenc.int y
+    IntegerMapInScoffer y -> makeDictEncoder identity Jenc.int y
 
 scrampum : Jdec.Decoder Scrampum
 scrampum =
@@ -1632,7 +1632,7 @@ encodeStimulability : Stimulability -> Jenc.Value
 encodeStimulability x = case x of
     BoolInStimulability y -> Jenc.bool y
     IntegerInStimulability y -> Jenc.int y
-    IntegerMapInStimulability y -> Jenc.dict identity Jenc.int y
+    IntegerMapInStimulability y -> makeDictEncoder identity Jenc.int y
 
 strangleable : Jdec.Decoder Strangleable
 strangleable =
@@ -1852,7 +1852,7 @@ encodeUnbeginning : Unbeginning -> Jenc.Value
 encodeUnbeginning x = case x of
     NullArrayInUnbeginning y -> Jenc.array (always Jenc.null) y
     StringInUnbeginning y -> Jenc.string y
-    IntegerMapInUnbeginning y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUnbeginning y -> makeDictEncoder identity Jenc.int y
 
 undesirability : Jdec.Decoder Undesirability
 undesirability =
@@ -1866,7 +1866,7 @@ encodeUndesirability : Undesirability -> Jenc.Value
 encodeUndesirability x = case x of
     IntegerArrayInUndesirability y -> Jenc.array Jenc.int y
     StringInUndesirability y -> Jenc.string y
-    IntegerMapInUndesirability y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUndesirability y -> makeDictEncoder identity Jenc.int y
 
 unerasing : Jdec.Decoder Unerasing
 unerasing =
@@ -1880,7 +1880,7 @@ encodeUnerasing : Unerasing -> Jenc.Value
 encodeUnerasing x = case x of
     NullArrayInUnerasing y -> Jenc.array (always Jenc.null) y
     IntegerInUnerasing y -> Jenc.int y
-    IntegerMapInUnerasing y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUnerasing y -> makeDictEncoder identity Jenc.int y
 
 unguentarium : Jdec.Decoder Unguentarium
 unguentarium =
@@ -1979,7 +1979,7 @@ encodeUnmortgaged : Unmortgaged -> Jenc.Value
 encodeUnmortgaged x = case x of
     NullInUnmortgaged -> Jenc.null
     DoubleInUnmortgaged y -> Jenc.float y
-    IntegerMapInUnmortgaged y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUnmortgaged y -> makeDictEncoder identity Jenc.int y
 
 unobstructed : Jdec.Decoder Unobstructed
 unobstructed =
@@ -2098,7 +2098,7 @@ encodeUntasked : Untasked -> Jenc.Value
 encodeUntasked x = case x of
     NullArrayInUntasked y -> Jenc.array (always Jenc.null) y
     DoubleInUntasked y -> Jenc.float y
-    IntegerMapInUntasked y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUntasked y -> makeDictEncoder identity Jenc.int y
 
 unvarying : Jdec.Decoder Unvarying
 unvarying =
@@ -2112,7 +2112,7 @@ encodeUnvarying : Unvarying -> Jenc.Value
 encodeUnvarying x = case x of
     BoolInUnvarying y -> Jenc.bool y
     DoubleInUnvarying y -> Jenc.float y
-    IntegerMapInUnvarying y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUnvarying y -> makeDictEncoder identity Jenc.int y
 
 vehemently : Jdec.Decoder Vehemently
 vehemently =
@@ -2203,6 +2203,14 @@ encodeWrothyClass x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combinations4.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/combinations4.json/default/QuickType.elm
index a334fbe..689f2dd 100644
--- a/base/elm/test/inputs/json/priority/combinations4.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combinations4.json/default/QuickType.elm
@@ -829,7 +829,7 @@ encodeQuickType x =
         , ("untasked", Jenc.list encodeUntasked x.untasked)
         , ("unvarying", Jenc.list encodeUnvarying x.unvarying)
         , ("vehemently", Jenc.list encodeVehemently x.vehemently)
-        , ("warriorship", Jenc.dict identity Jenc.bool x.warriorship)
+        , ("warriorship", makeDictEncoder identity Jenc.bool x.warriorship)
         , ("whitepot", Jenc.list encodeWhitepot x.whitepot)
         , ("wrothy", Jenc.list encodeWrothyElement x.wrothy)
         ]
@@ -1013,7 +1013,7 @@ querier =
 encodeQuerier : Querier -> Jenc.Value
 encodeQuerier x = case x of
     BoolInQuerier y -> Jenc.bool y
-    IntegerMapInQuerier y -> Jenc.dict identity Jenc.int y
+    IntegerMapInQuerier y -> makeDictEncoder identity Jenc.int y
 
 rebarbative : Jdec.Decoder Rebarbative
 rebarbative =
@@ -1311,7 +1311,7 @@ encodeSaprophilous : Saprophilous -> Jenc.Value
 encodeSaprophilous x = case x of
     NullInSaprophilous -> Jenc.null
     StringInSaprophilous y -> Jenc.string y
-    IntegerMapInSaprophilous y -> Jenc.dict identity Jenc.int y
+    IntegerMapInSaprophilous y -> makeDictEncoder identity Jenc.int y
 
 saxtenElement : Jdec.Decoder SaxtenElement
 saxtenElement =
@@ -1445,7 +1445,7 @@ encodeScoffer : Scoffer -> Jenc.Value
 encodeScoffer x = case x of
     NullArrayInScoffer y -> Jenc.list (always Jenc.null) y
     NullInScoffer -> Jenc.null
-    IntegerMapInScoffer y -> Jenc.dict identity Jenc.int y
+    IntegerMapInScoffer y -> makeDictEncoder identity Jenc.int y
 
 scrampum : Jdec.Decoder Scrampum
 scrampum =
@@ -1631,7 +1631,7 @@ encodeStimulability : Stimulability -> Jenc.Value
 encodeStimulability x = case x of
     BoolInStimulability y -> Jenc.bool y
     IntegerInStimulability y -> Jenc.int y
-    IntegerMapInStimulability y -> Jenc.dict identity Jenc.int y
+    IntegerMapInStimulability y -> makeDictEncoder identity Jenc.int y
 
 strangleable : Jdec.Decoder Strangleable
 strangleable =
@@ -1851,7 +1851,7 @@ encodeUnbeginning : Unbeginning -> Jenc.Value
 encodeUnbeginning x = case x of
     NullArrayInUnbeginning y -> Jenc.list (always Jenc.null) y
     StringInUnbeginning y -> Jenc.string y
-    IntegerMapInUnbeginning y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUnbeginning y -> makeDictEncoder identity Jenc.int y
 
 undesirability : Jdec.Decoder Undesirability
 undesirability =
@@ -1865,7 +1865,7 @@ encodeUndesirability : Undesirability -> Jenc.Value
 encodeUndesirability x = case x of
     IntegerArrayInUndesirability y -> Jenc.list Jenc.int y
     StringInUndesirability y -> Jenc.string y
-    IntegerMapInUndesirability y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUndesirability y -> makeDictEncoder identity Jenc.int y
 
 unerasing : Jdec.Decoder Unerasing
 unerasing =
@@ -1879,7 +1879,7 @@ encodeUnerasing : Unerasing -> Jenc.Value
 encodeUnerasing x = case x of
     NullArrayInUnerasing y -> Jenc.list (always Jenc.null) y
     IntegerInUnerasing y -> Jenc.int y
-    IntegerMapInUnerasing y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUnerasing y -> makeDictEncoder identity Jenc.int y
 
 unguentarium : Jdec.Decoder Unguentarium
 unguentarium =
@@ -1978,7 +1978,7 @@ encodeUnmortgaged : Unmortgaged -> Jenc.Value
 encodeUnmortgaged x = case x of
     NullInUnmortgaged -> Jenc.null
     DoubleInUnmortgaged y -> Jenc.float y
-    IntegerMapInUnmortgaged y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUnmortgaged y -> makeDictEncoder identity Jenc.int y
 
 unobstructed : Jdec.Decoder Unobstructed
 unobstructed =
@@ -2097,7 +2097,7 @@ encodeUntasked : Untasked -> Jenc.Value
 encodeUntasked x = case x of
     NullArrayInUntasked y -> Jenc.list (always Jenc.null) y
     DoubleInUntasked y -> Jenc.float y
-    IntegerMapInUntasked y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUntasked y -> makeDictEncoder identity Jenc.int y
 
 unvarying : Jdec.Decoder Unvarying
 unvarying =
@@ -2111,7 +2111,7 @@ encodeUnvarying : Unvarying -> Jenc.Value
 encodeUnvarying x = case x of
     BoolInUnvarying y -> Jenc.bool y
     DoubleInUnvarying y -> Jenc.float y
-    IntegerMapInUnvarying y -> Jenc.dict identity Jenc.int y
+    IntegerMapInUnvarying y -> makeDictEncoder identity Jenc.int y
 
 vehemently : Jdec.Decoder Vehemently
 vehemently =
@@ -2202,6 +2202,14 @@ encodeWrothyClass x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/combined-enum.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/combined-enum.json/default/QuickType.elm
index e30cb46..0a1b353 100644
--- a/base/elm/test/inputs/json/priority/combined-enum.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/combined-enum.json/default/QuickType.elm
@@ -92,6 +92,14 @@ encodeX x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/empty-enum.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/empty-enum.json/default/QuickType.elm
index 1402b86..cd55b7f 100644
--- a/base/elm/test/inputs/json/priority/empty-enum.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/empty-enum.json/default/QuickType.elm
@@ -66,6 +66,14 @@ encodeFoo x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/identifiers.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/identifiers.json/default/QuickType.elm
index 4d9f1d1..404a2eb 100644
--- a/base/elm/test/inputs/json/priority/identifiers.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/identifiers.json/default/QuickType.elm
@@ -169,6 +169,14 @@ encodeThisIsAToughOne x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/issue2680-object-array.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/issue2680-object-array.json/default/QuickType.elm
index 590aecd..4b09120 100644
--- a/base/elm/test/inputs/json/priority/issue2680-object-array.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/issue2680-object-array.json/default/QuickType.elm
@@ -56,6 +56,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/issue2680-scalar-array.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/issue2680-scalar-array.json/default/QuickType.elm
index 42abf22..237b937 100644
--- a/base/elm/test/inputs/json/priority/issue2680-scalar-array.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/issue2680-scalar-array.json/default/QuickType.elm
@@ -40,6 +40,14 @@ quickTypeToString r = Jenc.encode 0 (Jenc.list Jenc.int r)
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/keywords.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/keywords.json/default/QuickType.elm
index 2cf97f0..9ade1e3 100644
--- a/base/elm/test/inputs/json/priority/keywords.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/keywords.json/default/QuickType.elm
@@ -6606,6 +6606,14 @@ encodeYield x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/QuickType.elm
index 293c461..da962bd 100644
--- a/base/elm/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/QuickType.elm
@@ -76,6 +76,14 @@ encodeCategoryEnum x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/name-style.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/name-style.json/default/QuickType.elm
index 9510a0a..2a7ccd8 100644
--- a/base/elm/test/inputs/json/priority/name-style.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/name-style.json/default/QuickType.elm
@@ -68,6 +68,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/nbl-stats.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/nbl-stats.json/default/QuickType.elm
index 1c0ae78..10c6581 100644
--- a/base/elm/test/inputs/json/priority/nbl-stats.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/nbl-stats.json/default/QuickType.elm
@@ -436,9 +436,9 @@ encodeQuickType x =
         , ("periodLengthREGULAR", Jenc.int x.periodLengthREGULAR)
         , ("periodType", encodePerType x.periodType)
         , ("periodsMax", Jenc.int x.periodsMax)
-        , ("scorers", Jenc.dict identity (Jenc.list encodeScorer) x.scorers)
+        , ("scorers", makeDictEncoder identity (Jenc.list encodeScorer) x.scorers)
         , ("timeline", Jenc.list identity x.timeline)
-        , ("tm", Jenc.dict identity encodeTm x.tm)
+        , ("tm", makeDictEncoder identity encodeTm x.tm)
         , ("totalTimeAdded", Jenc.int x.totalTimeAdded)
         , ("totallds", encodeTotallds x.totallds)
         ]
@@ -878,7 +878,7 @@ encodeTm x =
         , ("p2_score", Jenc.int x.p2Score)
         , ("p3_score", Jenc.int x.p3Score)
         , ("p4_score", Jenc.int x.p4Score)
-        , ("pl", Jenc.dict identity encodePl x.pl)
+        , ("pl", makeDictEncoder identity encodePl x.pl)
         , ("score", Jenc.int x.score)
         , ("scoring", Jenc.list encodeScorer x.scoring)
         , ("shortName", Jenc.string x.shortName)
@@ -945,11 +945,11 @@ lds =
 encodeLds : Lds -> Jenc.Value
 encodeLds x =
     Jenc.object
-        [ ("sAssists", Jenc.dict identity encodeScorer x.sAssists)
+        [ ("sAssists", makeDictEncoder identity encodeScorer x.sAssists)
         , ("sBlocks", encodeSBlocks x.sBlocks)
-        , ("sPoints", Jenc.dict identity encodeScorer x.sPoints)
-        , ("sReboundsTotal", Jenc.dict identity encodeScorer x.sReboundsTotal)
-        , ("sSteals", Jenc.dict identity encodeScorer x.sSteals)
+        , ("sPoints", makeDictEncoder identity encodeScorer x.sPoints)
+        , ("sReboundsTotal", makeDictEncoder identity encodeScorer x.sReboundsTotal)
+        , ("sSteals", makeDictEncoder identity encodeScorer x.sSteals)
         ]
 
 sBlocks : Jdec.Decoder SBlocks
@@ -1163,15 +1163,23 @@ totallds =
 encodeTotallds : Totallds -> Jenc.Value
 encodeTotallds x =
     Jenc.object
-        [ ("sAssists", Jenc.dict identity encodeScorer x.sAssists)
-        , ("sBlocks", Jenc.dict identity encodeScorer x.sBlocks)
-        , ("sPoints", Jenc.dict identity encodeScorer x.sPoints)
-        , ("sReboundsTotal", Jenc.dict identity encodeScorer x.sReboundsTotal)
-        , ("sSteals", Jenc.dict identity encodeScorer x.sSteals)
+        [ ("sAssists", makeDictEncoder identity encodeScorer x.sAssists)
+        , ("sBlocks", makeDictEncoder identity encodeScorer x.sBlocks)
+        , ("sPoints", makeDictEncoder identity encodeScorer x.sPoints)
+        , ("sReboundsTotal", makeDictEncoder identity encodeScorer x.sReboundsTotal)
+        , ("sSteals", makeDictEncoder identity encodeScorer x.sSteals)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/nested-objects.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/nested-objects.json/default/QuickType.elm
index 7b4fab7..1bf4bde 100644
--- a/base/elm/test/inputs/json/priority/nested-objects.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/nested-objects.json/default/QuickType.elm
@@ -47,12 +47,20 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("a", Jenc.dict identity Jenc.int x.a)
-        , ("b", Jenc.dict identity Jenc.int x.b)
+        [ ("a", makeDictEncoder identity Jenc.int x.a)
+        , ("b", makeDictEncoder identity Jenc.int x.b)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/no-classes.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/no-classes.json/default/QuickType.elm
index 3f93d89..3635c53 100644
--- a/base/elm/test/inputs/json/priority/no-classes.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/no-classes.json/default/QuickType.elm
@@ -40,6 +40,14 @@ quickTypeToString r = Jenc.encode 0 (Jenc.int r)
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/nst-test-suite.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/nst-test-suite.json/default/QuickType.elm
index aa64b4e..3207716 100644
--- a/base/elm/test/inputs/json/priority/nst-test-suite.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/nst-test-suite.json/default/QuickType.elm
@@ -533,6 +533,14 @@ encodeYObjectWithNewlinesJSON x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/number-map.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/number-map.json/default/QuickType.elm
index 5f50911..335c6bc 100644
--- a/base/elm/test/inputs/json/priority/number-map.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/number-map.json/default/QuickType.elm
@@ -45,11 +45,19 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("foo", Jenc.dict identity Jenc.float x.foo)
+        [ ("foo", makeDictEncoder identity Jenc.float x.foo)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/omit-empty.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/omit-empty.json/default/QuickType.elm
index e2a4b69..d3438ca 100644
--- a/base/elm/test/inputs/json/priority/omit-empty.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/omit-empty.json/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeResult x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/optional-union.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/optional-union.json/default/QuickType.elm
index 01c4fc2..da0d568 100644
--- a/base/elm/test/inputs/json/priority/optional-union.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/optional-union.json/default/QuickType.elm
@@ -73,6 +73,14 @@ encodeA x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/php-mixed-union.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/php-mixed-union.json/default/QuickType.elm
index 2cf6f75..1e0ab15 100644
--- a/base/elm/test/inputs/json/priority/php-mixed-union.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/php-mixed-union.json/default/QuickType.elm
@@ -92,6 +92,14 @@ encodeMixedClass x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/php-validation.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/php-validation.json/default/QuickType.elm
index e2cb626..36cff41 100644
--- a/base/elm/test/inputs/json/priority/php-validation.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/php-validation.json/default/QuickType.elm
@@ -62,6 +62,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/simple-identifiers.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/simple-identifiers.json/default/QuickType.elm
index 34ceef4..345527c 100644
--- a/base/elm/test/inputs/json/priority/simple-identifiers.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/simple-identifiers.json/default/QuickType.elm
@@ -74,6 +74,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/union-constructor-clash.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/union-constructor-clash.json/default/QuickType.elm
index 584a0db..b958a1b 100644
--- a/base/elm/test/inputs/json/priority/union-constructor-clash.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/union-constructor-clash.json/default/QuickType.elm
@@ -86,6 +86,14 @@ encodeUnion x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/unions.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/unions.json/default/QuickType.elm
index f91b74b..9b00a46 100644
--- a/base/elm/test/inputs/json/priority/unions.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/unions.json/default/QuickType.elm
@@ -112,6 +112,14 @@ encodeZClass x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/url.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/url.json/default/QuickType.elm
index 8c1eefc..edf8482 100644
--- a/base/elm/test/inputs/json/priority/url.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/url.json/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/priority/uuids.json/default/QuickType.elm b/head/elm/test/inputs/json/priority/uuids.json/default/QuickType.elm
index 81e219c..0055903 100644
--- a/base/elm/test/inputs/json/priority/uuids.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/priority/uuids.json/default/QuickType.elm
@@ -65,6 +65,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/bitcoin-block.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/bitcoin-block.json/default/QuickType.elm
index 95b13eb..c5f38af 100644
--- a/base/elm/test/inputs/json/samples/bitcoin-block.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/bitcoin-block.json/default/QuickType.elm
@@ -62,6 +62,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/copy-with-property.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/copy-with-property.json/default/QuickType.elm
index aca5795..70e2ba0 100644
--- a/base/elm/test/inputs/json/samples/copy-with-property.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/copy-with-property.json/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/getting-started.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/getting-started.json/default/QuickType.elm
index 017d8fc..97b7c38 100644
--- a/base/elm/test/inputs/json/samples/getting-started.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/getting-started.json/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/github-events.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/github-events.json/default/QuickType.elm
index 8f3927d..7caaf43 100644
--- a/base/elm/test/inputs/json/samples/github-events.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/github-events.json/default/QuickType.elm
@@ -986,6 +986,14 @@ encodeQuickTypeRepo x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/kitchen-sink.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/kitchen-sink.json/default/QuickType.elm
index 2c4d0ae..797d894 100644
--- a/base/elm/test/inputs/json/samples/kitchen-sink.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/kitchen-sink.json/default/QuickType.elm
@@ -105,10 +105,10 @@ encodeQuickType x =
         , ("differentThings", Jenc.list encodeDifferentThingElement x.differentThings)
         , ("doubleValue", Jenc.float x.doubleValue)
         , ("intValue", Jenc.int x.intValue)
-        , ("mapValue", Jenc.dict identity (makeNullableEncoder Jenc.int) x.mapValue)
+        , ("mapValue", makeDictEncoder identity (makeNullableEncoder Jenc.int) x.mapValue)
         , ("name with spaces", always Jenc.null x.nameWithSpaces)
         , ("nullValue", always Jenc.null x.nullValue)
-        , ("nullableMapValue", Jenc.dict identity (makeNullableEncoder Jenc.int) x.nullableMapValue)
+        , ("nullableMapValue", makeDictEncoder identity (makeNullableEncoder Jenc.int) x.nullableMapValue)
         , ("people", Jenc.list encodePersonElement x.people)
         , ("person", encodePurplePerson x.person)
         , ("stringValue", Jenc.string x.stringValue)
@@ -183,6 +183,14 @@ encodePurplePerson x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/null-safe.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/null-safe.json/default/QuickType.elm
index 4e07c99..eddc082 100644
--- a/base/elm/test/inputs/json/samples/null-safe.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/null-safe.json/default/QuickType.elm
@@ -97,6 +97,14 @@ encodeAddress x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/objc-control-characters.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/objc-control-characters.json/default/QuickType.elm
index 37eb77a..5ec054f 100644
--- a/base/elm/test/inputs/json/samples/objc-control-characters.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/objc-control-characters.json/default/QuickType.elm
@@ -76,6 +76,14 @@ encodeValue x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/pokedex.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/pokedex.json/default/QuickType.elm
index 0efc07e..c26b697 100644
--- a/base/elm/test/inputs/json/samples/pokedex.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/pokedex.json/default/QuickType.elm
@@ -230,6 +230,14 @@ encodeType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/reddit.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/reddit.json/default/QuickType.elm
index e9ff5a5..39961f1 100644
--- a/base/elm/test/inputs/json/samples/reddit.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/reddit.json/default/QuickType.elm
@@ -575,6 +575,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/simple-object.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/simple-object.json/default/QuickType.elm
index 2375767..8bb5204 100644
--- a/base/elm/test/inputs/json/samples/simple-object.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/simple-object.json/default/QuickType.elm
@@ -56,6 +56,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/spotify-album.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/spotify-album.json/default/QuickType.elm
index 3c50dfe..4db09bd 100644
--- a/base/elm/test/inputs/json/samples/spotify-album.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/spotify-album.json/default/QuickType.elm
@@ -288,6 +288,14 @@ encodeItem x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/us-avg-temperatures.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/us-avg-temperatures.json/default/QuickType.elm
index b7adef0..8b79e00 100644
--- a/base/elm/test/inputs/json/samples/us-avg-temperatures.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/us-avg-temperatures.json/default/QuickType.elm
@@ -61,7 +61,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("data", Jenc.dict identity encodeDatum x.data)
+        [ ("data", makeDictEncoder identity encodeDatum x.data)
         , ("description", encodeDescription x.description)
         ]
 
@@ -97,6 +97,14 @@ encodeDescription x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/elm/test/inputs/json/samples/us-senators.json/default/QuickType.elm b/head/elm/test/inputs/json/samples/us-senators.json/default/QuickType.elm
index 2f2ad3c..2daca28 100644
--- a/base/elm/test/inputs/json/samples/us-senators.json/default/QuickType.elm
+++ b/head/elm/test/inputs/json/samples/us-senators.json/default/QuickType.elm
@@ -469,6 +469,14 @@ encodeTitle x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/flow/test/inputs/json/misc/00c36.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/00c36.json/default/TopLevel.js
index 162dbc2..7eebad2 100644
--- a/base/flow/test/inputs/json/misc/00c36.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/00c36.json/default/TopLevel.js
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/00ec5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/00ec5.json/default/TopLevel.js
index 4d45847..01cc1b8 100644
--- a/base/flow/test/inputs/json/misc/00ec5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/00ec5.json/default/TopLevel.js
@@ -174,7 +174,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -185,7 +185,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/010b1.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/010b1.json/default/TopLevel.js
index 89794b9..bcf4607 100644
--- a/base/flow/test/inputs/json/misc/010b1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/010b1.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/016af.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/016af.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/016af.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/016af.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/033b1.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/033b1.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/033b1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/033b1.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/050b0.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/050b0.json/default/TopLevel.js
index 6c1c8a4..21a854f 100644
--- a/base/flow/test/inputs/json/misc/050b0.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/050b0.json/default/TopLevel.js
@@ -163,7 +163,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -174,7 +174,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/06bee.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/06bee.json/default/TopLevel.js
index e124161..5a0b524 100644
--- a/base/flow/test/inputs/json/misc/06bee.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/06bee.json/default/TopLevel.js
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -162,7 +162,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/07540.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/07540.json/default/TopLevel.js
index d9826f0..503b7cb 100644
--- a/base/flow/test/inputs/json/misc/07540.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/07540.json/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/0779f.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/0779f.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/0779f.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/0779f.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/07c75.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/07c75.json/default/TopLevel.js
index a298561..7a8a97d 100644
--- a/base/flow/test/inputs/json/misc/07c75.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/07c75.json/default/TopLevel.js
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -143,7 +143,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/09f54.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/09f54.json/default/TopLevel.js
index 1eccbad..22f369c 100644
--- a/base/flow/test/inputs/json/misc/09f54.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/09f54.json/default/TopLevel.js
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/0a358.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/0a358.json/default/TopLevel.js
index fdf8c01..f9a1579 100644
--- a/base/flow/test/inputs/json/misc/0a358.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/0a358.json/default/TopLevel.js
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/0a91a.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/0a91a.json/default/TopLevel.js
index 82bc4f2..0908f0d 100644
--- a/base/flow/test/inputs/json/misc/0a91a.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/0a91a.json/default/TopLevel.js
@@ -327,7 +327,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -338,7 +338,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/0b91a.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/0b91a.json/default/TopLevel.js
index 209fdf8..60f4667 100644
--- a/base/flow/test/inputs/json/misc/0b91a.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/0b91a.json/default/TopLevel.js
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/0cffa.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/0cffa.json/default/TopLevel.js
index 9b7923c..921544b 100644
--- a/base/flow/test/inputs/json/misc/0cffa.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/0cffa.json/default/TopLevel.js
@@ -222,7 +222,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -233,7 +233,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/0e0c2.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/0e0c2.json/default/TopLevel.js
index 407cad3..da70a86 100644
--- a/base/flow/test/inputs/json/misc/0e0c2.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/0e0c2.json/default/TopLevel.js
@@ -184,7 +184,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -195,7 +195,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/0fecf.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/0fecf.json/default/TopLevel.js
index 3ee24ee..2cc1039 100644
--- a/base/flow/test/inputs/json/misc/0fecf.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/0fecf.json/default/TopLevel.js
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/10be4.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/10be4.json/default/TopLevel.js
index 63eecca..44b2ca4 100644
--- a/base/flow/test/inputs/json/misc/10be4.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/10be4.json/default/TopLevel.js
@@ -174,7 +174,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -185,7 +185,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/112b5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/112b5.json/default/TopLevel.js
index f9cab5b..eac113f 100644
--- a/base/flow/test/inputs/json/misc/112b5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/112b5.json/default/TopLevel.js
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/127a1.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/127a1.json/default/TopLevel.js
index 3e28e99..535cac4 100644
--- a/base/flow/test/inputs/json/misc/127a1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/127a1.json/default/TopLevel.js
@@ -221,7 +221,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -232,7 +232,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/13d8d.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/13d8d.json/default/TopLevel.js
index 48593f5..2e44462 100644
--- a/base/flow/test/inputs/json/misc/13d8d.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/13d8d.json/default/TopLevel.js
@@ -133,7 +133,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -144,7 +144,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/14d38.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/14d38.json/default/TopLevel.js
index 713e56b..7b56c90 100644
--- a/base/flow/test/inputs/json/misc/14d38.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/14d38.json/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/167d6.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/167d6.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/167d6.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/167d6.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/16bc5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/16bc5.json/default/TopLevel.js
index 6dba12d..a579f9d 100644
--- a/base/flow/test/inputs/json/misc/16bc5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/16bc5.json/default/TopLevel.js
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/176f1.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/176f1.json/default/TopLevel.js
index db78db6..319d9f8 100644
--- a/base/flow/test/inputs/json/misc/176f1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/176f1.json/default/TopLevel.js
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -143,7 +143,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/1a7f5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/1a7f5.json/default/TopLevel.js
index 89794b9..bcf4607 100644
--- a/base/flow/test/inputs/json/misc/1a7f5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/1a7f5.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/1b28c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/1b28c.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/1b28c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/1b28c.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/1b409.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/1b409.json/default/TopLevel.js
index 56b0139..fb52e30 100644
--- a/base/flow/test/inputs/json/misc/1b409.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/1b409.json/default/TopLevel.js
@@ -198,7 +198,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -209,7 +209,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/2465e.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/2465e.json/default/TopLevel.js
index e283f26..0e6c0ae 100644
--- a/base/flow/test/inputs/json/misc/2465e.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/2465e.json/default/TopLevel.js
@@ -180,7 +180,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -191,7 +191,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/24f52.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/24f52.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/24f52.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/24f52.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/262f0.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/262f0.json/default/TopLevel.js
index 1dc4430..f81251b 100644
--- a/base/flow/test/inputs/json/misc/262f0.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/262f0.json/default/TopLevel.js
@@ -210,7 +210,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -221,7 +221,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/26b49.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/26b49.json/default/TopLevel.js
index c9ba533..cb0c67c 100644
--- a/base/flow/test/inputs/json/misc/26b49.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/26b49.json/default/TopLevel.js
@@ -219,7 +219,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -230,7 +230,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/26c9c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/26c9c.json/default/TopLevel.js
index d4b28ed..9b151fa 100644
--- a/base/flow/test/inputs/json/misc/26c9c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/26c9c.json/default/TopLevel.js
@@ -294,7 +294,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -305,7 +305,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/27332.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/27332.json/default/TopLevel.js
index 934296a..2f9d303 100644
--- a/base/flow/test/inputs/json/misc/27332.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/27332.json/default/TopLevel.js
@@ -260,7 +260,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -271,7 +271,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/29f47.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/29f47.json/default/TopLevel.js
index 6c6029e..6ea2f5d 100644
--- a/base/flow/test/inputs/json/misc/29f47.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/29f47.json/default/TopLevel.js
@@ -246,7 +246,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -257,7 +257,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/2d4e2.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/2d4e2.json/default/TopLevel.js
index 50f7c40..4062586 100644
--- a/base/flow/test/inputs/json/misc/2d4e2.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/2d4e2.json/default/TopLevel.js
@@ -214,7 +214,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -225,7 +225,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/2df80.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/2df80.json/default/TopLevel.js
index e8a7f8a..6b37c06 100644
--- a/base/flow/test/inputs/json/misc/2df80.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/2df80.json/default/TopLevel.js
@@ -180,7 +180,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -191,7 +191,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/31189.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/31189.json/default/TopLevel.js
index 4fb8245..09427be 100644
--- a/base/flow/test/inputs/json/misc/31189.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/31189.json/default/TopLevel.js
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/32431.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/32431.json/default/TopLevel.js
index 9b836ab..c34e316 100644
--- a/base/flow/test/inputs/json/misc/32431.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/32431.json/default/TopLevel.js
@@ -178,7 +178,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -189,7 +189,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/32d5c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/32d5c.json/default/TopLevel.js
index 8f57115..a11f988 100644
--- a/base/flow/test/inputs/json/misc/32d5c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/32d5c.json/default/TopLevel.js
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/337ed.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/337ed.json/default/TopLevel.js
index 400a636..de62c4e 100644
--- a/base/flow/test/inputs/json/misc/337ed.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/337ed.json/default/TopLevel.js
@@ -175,7 +175,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -186,7 +186,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/33d2e.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/33d2e.json/default/TopLevel.js
index 954c924..d6913e1 100644
--- a/base/flow/test/inputs/json/misc/33d2e.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/33d2e.json/default/TopLevel.js
@@ -160,7 +160,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -171,7 +171,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/34702.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/34702.json/default/TopLevel.js
index f14ce92..f7219b6 100644
--- a/base/flow/test/inputs/json/misc/34702.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/34702.json/default/TopLevel.js
@@ -195,7 +195,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -206,7 +206,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/3536b.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/3536b.json/default/TopLevel.js
index 4c5794e..5a74561 100644
--- a/base/flow/test/inputs/json/misc/3536b.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/3536b.json/default/TopLevel.js
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -153,7 +153,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/3659d.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/3659d.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/3659d.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/3659d.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/36d5d.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/36d5d.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/36d5d.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/36d5d.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/3a6b3.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/3a6b3.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/3a6b3.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/3a6b3.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/3e9a3.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/3e9a3.json/default/TopLevel.js
index db78db6..319d9f8 100644
--- a/base/flow/test/inputs/json/misc/3e9a3.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/3e9a3.json/default/TopLevel.js
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -143,7 +143,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/3f1ce.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/3f1ce.json/default/TopLevel.js
index 870cf6a..76c6c27 100644
--- a/base/flow/test/inputs/json/misc/3f1ce.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/3f1ce.json/default/TopLevel.js
@@ -208,7 +208,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -219,7 +219,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/421d4.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/421d4.json/default/TopLevel.js
index 5d852e7..051c669 100644
--- a/base/flow/test/inputs/json/misc/421d4.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/421d4.json/default/TopLevel.js
@@ -221,7 +221,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -232,7 +232,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/437e7.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/437e7.json/default/TopLevel.js
index 46aad64..ba501ee 100644
--- a/base/flow/test/inputs/json/misc/437e7.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/437e7.json/default/TopLevel.js
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -227,7 +227,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/43970.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/43970.json/default/TopLevel.js
index 96da4f2..4665310 100644
--- a/base/flow/test/inputs/json/misc/43970.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/43970.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/43eaf.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/43eaf.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/43eaf.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/43eaf.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/458db.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/458db.json/default/TopLevel.js
index 602758a..f043a8e 100644
--- a/base/flow/test/inputs/json/misc/458db.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/458db.json/default/TopLevel.js
@@ -149,7 +149,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -160,7 +160,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/4961a.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/4961a.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/4961a.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/4961a.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/4a0d7.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/4a0d7.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/4a0d7.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/4a0d7.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/4a455.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/4a455.json/default/TopLevel.js
index af5a140..4d82661 100644
--- a/base/flow/test/inputs/json/misc/4a455.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/4a455.json/default/TopLevel.js
@@ -150,7 +150,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -161,7 +161,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/4c547.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/4c547.json/default/TopLevel.js
index 6dba12d..a579f9d 100644
--- a/base/flow/test/inputs/json/misc/4c547.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/4c547.json/default/TopLevel.js
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/4d6fb.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/4d6fb.json/default/TopLevel.js
index e9dc36d..931e768 100644
--- a/base/flow/test/inputs/json/misc/4d6fb.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/4d6fb.json/default/TopLevel.js
@@ -255,7 +255,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -266,7 +266,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/4e336.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/4e336.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/4e336.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/4e336.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/54147.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/54147.json/default/TopLevel.js
index ebba231..4c8c228 100644
--- a/base/flow/test/inputs/json/misc/54147.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/54147.json/default/TopLevel.js
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -134,7 +134,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/54d32.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/54d32.json/default/TopLevel.js
index d884bb6..4b3e4f4 100644
--- a/base/flow/test/inputs/json/misc/54d32.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/54d32.json/default/TopLevel.js
@@ -129,7 +129,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/570ec.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/570ec.json/default/TopLevel.js
index df6a35e..a5a4f74 100644
--- a/base/flow/test/inputs/json/misc/570ec.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/570ec.json/default/TopLevel.js
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -153,7 +153,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/5dd0d.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/5dd0d.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/5dd0d.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/5dd0d.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/5eae5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/5eae5.json/default/TopLevel.js
index 2d34873..14ab7bb 100644
--- a/base/flow/test/inputs/json/misc/5eae5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/5eae5.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/5eb20.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/5eb20.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/5eb20.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/5eb20.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/5f3a1.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/5f3a1.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/5f3a1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/5f3a1.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/5f7fe.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/5f7fe.json/default/TopLevel.js
index e0c97d0..43d12f2 100644
--- a/base/flow/test/inputs/json/misc/5f7fe.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/5f7fe.json/default/TopLevel.js
@@ -295,7 +295,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -306,7 +306,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/617e8.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/617e8.json/default/TopLevel.js
index 772ffb1..9e3059b 100644
--- a/base/flow/test/inputs/json/misc/617e8.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/617e8.json/default/TopLevel.js
@@ -294,7 +294,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -305,7 +305,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/61b66.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/61b66.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/61b66.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/61b66.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/6260a.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/6260a.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/6260a.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/6260a.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/65dec.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/65dec.json/default/TopLevel.js
index 5439a46..99004d8 100644
--- a/base/flow/test/inputs/json/misc/65dec.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/65dec.json/default/TopLevel.js
@@ -194,7 +194,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/66121.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/66121.json/default/TopLevel.js
index e1199ed..72dc9e9 100644
--- a/base/flow/test/inputs/json/misc/66121.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/66121.json/default/TopLevel.js
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -162,7 +162,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/6617c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/6617c.json/default/TopLevel.js
index 2c7f4a6..e8d1bfe 100644
--- a/base/flow/test/inputs/json/misc/6617c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/6617c.json/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/67c03.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/67c03.json/default/TopLevel.js
index d156dcd..d197725 100644
--- a/base/flow/test/inputs/json/misc/67c03.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/67c03.json/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/68c30.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/68c30.json/default/TopLevel.js
index 46cf69f..3a222bb 100644
--- a/base/flow/test/inputs/json/misc/68c30.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/68c30.json/default/TopLevel.js
@@ -138,7 +138,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -149,7 +149,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/6c155.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/6c155.json/default/TopLevel.js
index c7e4986..efeec9e 100644
--- a/base/flow/test/inputs/json/misc/6c155.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/6c155.json/default/TopLevel.js
@@ -160,7 +160,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -171,7 +171,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/6de06.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/6de06.json/default/TopLevel.js
index 7b5ef08..6ee2b85 100644
--- a/base/flow/test/inputs/json/misc/6de06.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/6de06.json/default/TopLevel.js
@@ -255,7 +255,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -266,7 +266,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/6dec6.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/6dec6.json/default/TopLevel.js
index 3c0767b..e7a636f 100644
--- a/base/flow/test/inputs/json/misc/6dec6.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/6dec6.json/default/TopLevel.js
@@ -210,7 +210,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -221,7 +221,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/6eb00.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/6eb00.json/default/TopLevel.js
index 7d2b1cf..5b80136 100644
--- a/base/flow/test/inputs/json/misc/6eb00.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/6eb00.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/70c77.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/70c77.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/70c77.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/70c77.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/734ad.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/734ad.json/default/TopLevel.js
index 1966444..6ef2318 100644
--- a/base/flow/test/inputs/json/misc/734ad.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/734ad.json/default/TopLevel.js
@@ -181,7 +181,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -192,7 +192,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/75912.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/75912.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/75912.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/75912.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/7681c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/7681c.json/default/TopLevel.js
index 5ffad09..b7b9fb9 100644
--- a/base/flow/test/inputs/json/misc/7681c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/7681c.json/default/TopLevel.js
@@ -223,7 +223,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -234,7 +234,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/76ae1.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/76ae1.json/default/TopLevel.js
index f4001ff..9505580 100644
--- a/base/flow/test/inputs/json/misc/76ae1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/76ae1.json/default/TopLevel.js
@@ -291,7 +291,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -302,7 +302,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/77392.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/77392.json/default/TopLevel.js
index ec26653..019aea5 100644
--- a/base/flow/test/inputs/json/misc/77392.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/77392.json/default/TopLevel.js
@@ -134,7 +134,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -145,7 +145,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/7d397.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/7d397.json/default/TopLevel.js
index daed49b..84b9c32 100644
--- a/base/flow/test/inputs/json/misc/7d397.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/7d397.json/default/TopLevel.js
@@ -182,7 +182,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -193,7 +193,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/7d722.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/7d722.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/7d722.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/7d722.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/7df41.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/7df41.json/default/TopLevel.js
index 46994ca..ef84f68 100644
--- a/base/flow/test/inputs/json/misc/7df41.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/7df41.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/7dfa6.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/7dfa6.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/7dfa6.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/7dfa6.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/7eb30.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/7eb30.json/default/TopLevel.js
index 5932680..df827d6 100644
--- a/base/flow/test/inputs/json/misc/7eb30.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/7eb30.json/default/TopLevel.js
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -162,7 +162,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/7f568.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/7f568.json/default/TopLevel.js
index 6f21818..2bcc4cc 100644
--- a/base/flow/test/inputs/json/misc/7f568.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/7f568.json/default/TopLevel.js
@@ -138,7 +138,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -149,7 +149,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/7fbfb.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/7fbfb.json/default/TopLevel.js
index d84d9a6..9319ea9 100644
--- a/base/flow/test/inputs/json/misc/7fbfb.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/7fbfb.json/default/TopLevel.js
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/80aff.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/80aff.json/default/TopLevel.js
index f58d28c..b9e08a4 100644
--- a/base/flow/test/inputs/json/misc/80aff.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/80aff.json/default/TopLevel.js
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -137,7 +137,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/82509.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/82509.json/default/TopLevel.js
index 12cc75e..4a10d4a 100644
--- a/base/flow/test/inputs/json/misc/82509.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/82509.json/default/TopLevel.js
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/8592b.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/8592b.json/default/TopLevel.js
index 6ba8b46..1b4095f 100644
--- a/base/flow/test/inputs/json/misc/8592b.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/8592b.json/default/TopLevel.js
@@ -230,7 +230,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -241,7 +241,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/88130.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/88130.json/default/TopLevel.js
index 6dba12d..a579f9d 100644
--- a/base/flow/test/inputs/json/misc/88130.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/88130.json/default/TopLevel.js
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/8a62c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/8a62c.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/8a62c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/8a62c.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/908db.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/908db.json/default/TopLevel.js
index 0a7d4d3..a3a695e 100644
--- a/base/flow/test/inputs/json/misc/908db.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/908db.json/default/TopLevel.js
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/9617f.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/9617f.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/9617f.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/9617f.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/96f7c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/96f7c.json/default/TopLevel.js
index ef14be8..345f004 100644
--- a/base/flow/test/inputs/json/misc/96f7c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/96f7c.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/9847b.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/9847b.json/default/TopLevel.js
index 6533855..c5eded5 100644
--- a/base/flow/test/inputs/json/misc/9847b.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/9847b.json/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/9929c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/9929c.json/default/TopLevel.js
index 6dba12d..a579f9d 100644
--- a/base/flow/test/inputs/json/misc/9929c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/9929c.json/default/TopLevel.js
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/996bd.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/996bd.json/default/TopLevel.js
index f298931..b18a4e6 100644
--- a/base/flow/test/inputs/json/misc/996bd.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/996bd.json/default/TopLevel.js
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -162,7 +162,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/9a503.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/9a503.json/default/TopLevel.js
index 7a5b1c5..395074c 100644
--- a/base/flow/test/inputs/json/misc/9a503.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/9a503.json/default/TopLevel.js
@@ -137,7 +137,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -148,7 +148,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/9ac3b.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/9ac3b.json/default/TopLevel.js
index be0be36..f5736f2 100644
--- a/base/flow/test/inputs/json/misc/9ac3b.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/9ac3b.json/default/TopLevel.js
@@ -138,7 +138,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -149,7 +149,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/9eed5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/9eed5.json/default/TopLevel.js
index 83fa291..3a783b8 100644
--- a/base/flow/test/inputs/json/misc/9eed5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/9eed5.json/default/TopLevel.js
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/a0496.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/a0496.json/default/TopLevel.js
index 5725050..664e64c 100644
--- a/base/flow/test/inputs/json/misc/a0496.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/a0496.json/default/TopLevel.js
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -139,7 +139,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/a1eca.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/a1eca.json/default/TopLevel.js
index 6dba12d..a579f9d 100644
--- a/base/flow/test/inputs/json/misc/a1eca.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/a1eca.json/default/TopLevel.js
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/a3d8c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/a3d8c.json/default/TopLevel.js
index 43e579f..deeb4c5 100644
--- a/base/flow/test/inputs/json/misc/a3d8c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/a3d8c.json/default/TopLevel.js
@@ -223,7 +223,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -234,7 +234,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/a45b0.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/a45b0.json/default/TopLevel.js
index 89794b9..bcf4607 100644
--- a/base/flow/test/inputs/json/misc/a45b0.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/a45b0.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/a71df.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/a71df.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/a71df.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/a71df.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/a9691.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/a9691.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/a9691.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/a9691.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/ab0d1.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/ab0d1.json/default/TopLevel.js
index 89794b9..bcf4607 100644
--- a/base/flow/test/inputs/json/misc/ab0d1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/ab0d1.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/abb4b.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/abb4b.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/abb4b.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/abb4b.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/ac944.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/ac944.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/ac944.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/ac944.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/ad8be.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/ad8be.json/default/TopLevel.js
index 63eecca..44b2ca4 100644
--- a/base/flow/test/inputs/json/misc/ad8be.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/ad8be.json/default/TopLevel.js
@@ -174,7 +174,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -185,7 +185,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/ae7f0.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/ae7f0.json/default/TopLevel.js
index f6846b2..d03dd39 100644
--- a/base/flow/test/inputs/json/misc/ae7f0.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/ae7f0.json/default/TopLevel.js
@@ -204,7 +204,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -215,7 +215,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/ae9ca.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/ae9ca.json/default/TopLevel.js
index 670c8dd..0289e96 100644
--- a/base/flow/test/inputs/json/misc/ae9ca.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/ae9ca.json/default/TopLevel.js
@@ -153,7 +153,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -164,7 +164,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/af2d1.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/af2d1.json/default/TopLevel.js
index a3bad4d..fa19db9 100644
--- a/base/flow/test/inputs/json/misc/af2d1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/af2d1.json/default/TopLevel.js
@@ -215,7 +215,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -226,7 +226,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/b4865.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/b4865.json/default/TopLevel.js
index c90ee85..ff51e69 100644
--- a/base/flow/test/inputs/json/misc/b4865.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/b4865.json/default/TopLevel.js
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/b6f2c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/b6f2c.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/b6f2c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/b6f2c.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/b6fe5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/b6fe5.json/default/TopLevel.js
index e38f3a8..1845440 100644
--- a/base/flow/test/inputs/json/misc/b6fe5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/b6fe5.json/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/b9f64.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/b9f64.json/default/TopLevel.js
index 8fa46b9..77e9dd0 100644
--- a/base/flow/test/inputs/json/misc/b9f64.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/b9f64.json/default/TopLevel.js
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/bb1ec.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/bb1ec.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/bb1ec.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/bb1ec.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/be234.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/be234.json/default/TopLevel.js
index 0cb3e64..5694092 100644
--- a/base/flow/test/inputs/json/misc/be234.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/be234.json/default/TopLevel.js
@@ -269,7 +269,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -280,7 +280,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/c0356.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/c0356.json/default/TopLevel.js
index c715046..97954b8 100644
--- a/base/flow/test/inputs/json/misc/c0356.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/c0356.json/default/TopLevel.js
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/c0a3a.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/c0a3a.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/c0a3a.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/c0a3a.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/c3303.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/c3303.json/default/TopLevel.js
index c0554e5..6a8dce9 100644
--- a/base/flow/test/inputs/json/misc/c3303.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/c3303.json/default/TopLevel.js
@@ -220,7 +220,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -231,7 +231,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/c6cfd.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/c6cfd.json/default/TopLevel.js
index ff97c25..cf17077 100644
--- a/base/flow/test/inputs/json/misc/c6cfd.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/c6cfd.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/c8c7e.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/c8c7e.json/default/TopLevel.js
index 2655a97..a52dfa4 100644
--- a/base/flow/test/inputs/json/misc/c8c7e.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/c8c7e.json/default/TopLevel.js
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/cb0cc.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/cb0cc.json/default/TopLevel.js
index 1ae3eae..0f5b4c6 100644
--- a/base/flow/test/inputs/json/misc/cb0cc.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/cb0cc.json/default/TopLevel.js
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -141,7 +141,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/cb81e.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/cb81e.json/default/TopLevel.js
index d6a0df8..5775425 100644
--- a/base/flow/test/inputs/json/misc/cb81e.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/cb81e.json/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/ccd18.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/ccd18.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/ccd18.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/ccd18.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/cd238.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/cd238.json/default/TopLevel.js
index c7ac2de..ad4ec40 100644
--- a/base/flow/test/inputs/json/misc/cd238.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/cd238.json/default/TopLevel.js
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/cd463.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/cd463.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/cd463.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/cd463.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/cda6c.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/cda6c.json/default/TopLevel.js
index bb61a30..ed7c3e9 100644
--- a/base/flow/test/inputs/json/misc/cda6c.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/cda6c.json/default/TopLevel.js
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/cf0d8.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/cf0d8.json/default/TopLevel.js
index 6dba12d..a579f9d 100644
--- a/base/flow/test/inputs/json/misc/cf0d8.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/cf0d8.json/default/TopLevel.js
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/cfbce.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/cfbce.json/default/TopLevel.js
index 3bb973a..fdf3b5a 100644
--- a/base/flow/test/inputs/json/misc/cfbce.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/cfbce.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/d0908.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/d0908.json/default/TopLevel.js
index 6cc839f..745fefb 100644
--- a/base/flow/test/inputs/json/misc/d0908.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/d0908.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/d23d5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/d23d5.json/default/TopLevel.js
index 61d1e3f..77ae604 100644
--- a/base/flow/test/inputs/json/misc/d23d5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/d23d5.json/default/TopLevel.js
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/dbfb3.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/dbfb3.json/default/TopLevel.js
index 91a80f8..ca9919a 100644
--- a/base/flow/test/inputs/json/misc/dbfb3.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/dbfb3.json/default/TopLevel.js
@@ -209,7 +209,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -220,7 +220,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/dc44f.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/dc44f.json/default/TopLevel.js
index ff5cb85..bb205d5 100644
--- a/base/flow/test/inputs/json/misc/dc44f.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/dc44f.json/default/TopLevel.js
@@ -233,7 +233,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -244,7 +244,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/dd1ce.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/dd1ce.json/default/TopLevel.js
index ff5cb85..bb205d5 100644
--- a/base/flow/test/inputs/json/misc/dd1ce.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/dd1ce.json/default/TopLevel.js
@@ -233,7 +233,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -244,7 +244,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/dec3a.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/dec3a.json/default/TopLevel.js
index 2eed152..7aff8a9 100644
--- a/base/flow/test/inputs/json/misc/dec3a.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/dec3a.json/default/TopLevel.js
@@ -168,7 +168,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -179,7 +179,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/df957.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/df957.json/default/TopLevel.js
index 6dba12d..a579f9d 100644
--- a/base/flow/test/inputs/json/misc/df957.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/df957.json/default/TopLevel.js
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/e0ac7.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/e0ac7.json/default/TopLevel.js
index ab2051d..de76368 100644
--- a/base/flow/test/inputs/json/misc/e0ac7.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/e0ac7.json/default/TopLevel.js
@@ -217,7 +217,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -228,7 +228,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/e2915.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/e2915.json/default/TopLevel.js
index e774dfd..0b2bc84 100644
--- a/base/flow/test/inputs/json/misc/e2915.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/e2915.json/default/TopLevel.js
@@ -208,7 +208,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -219,7 +219,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/e2a58.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/e2a58.json/default/TopLevel.js
index 6ab5788..3bbcea2 100644
--- a/base/flow/test/inputs/json/misc/e2a58.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/e2a58.json/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/e324e.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/e324e.json/default/TopLevel.js
index 6f4278c..bdb48a1 100644
--- a/base/flow/test/inputs/json/misc/e324e.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/e324e.json/default/TopLevel.js
@@ -179,7 +179,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -190,7 +190,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/e53b5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/e53b5.json/default/TopLevel.js
index 15ed332..8275b18 100644
--- a/base/flow/test/inputs/json/misc/e53b5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/e53b5.json/default/TopLevel.js
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/e64a0.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/e64a0.json/default/TopLevel.js
index f9cab5b..eac113f 100644
--- a/base/flow/test/inputs/json/misc/e64a0.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/e64a0.json/default/TopLevel.js
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/e8a0b.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/e8a0b.json/default/TopLevel.js
index 89794b9..bcf4607 100644
--- a/base/flow/test/inputs/json/misc/e8a0b.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/e8a0b.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/e8b04.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/e8b04.json/default/TopLevel.js
index 1459701..aab46ec 100644
--- a/base/flow/test/inputs/json/misc/e8b04.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/e8b04.json/default/TopLevel.js
@@ -377,7 +377,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -388,7 +388,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/ed095.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/ed095.json/default/TopLevel.js
index e58461b..30247d3 100644
--- a/base/flow/test/inputs/json/misc/ed095.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/ed095.json/default/TopLevel.js
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/f22f5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/f22f5.json/default/TopLevel.js
index ba01b2c..fef1440 100644
--- a/base/flow/test/inputs/json/misc/f22f5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/f22f5.json/default/TopLevel.js
@@ -201,7 +201,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -212,7 +212,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/f3139.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/f3139.json/default/TopLevel.js
index 6533855..c5eded5 100644
--- a/base/flow/test/inputs/json/misc/f3139.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/f3139.json/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/f3edf.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/f3edf.json/default/TopLevel.js
index 89794b9..bcf4607 100644
--- a/base/flow/test/inputs/json/misc/f3edf.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/f3edf.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/f466a.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/f466a.json/default/TopLevel.js
index 89794b9..bcf4607 100644
--- a/base/flow/test/inputs/json/misc/f466a.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/f466a.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/f6a65.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/f6a65.json/default/TopLevel.js
index 3b08027..e80ee0f 100644
--- a/base/flow/test/inputs/json/misc/f6a65.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/f6a65.json/default/TopLevel.js
@@ -224,7 +224,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -235,7 +235,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/f74d5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/f74d5.json/default/TopLevel.js
index f85b0f6..bdbb0dc 100644
--- a/base/flow/test/inputs/json/misc/f74d5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/f74d5.json/default/TopLevel.js
@@ -223,7 +223,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -234,7 +234,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/f82d9.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/f82d9.json/default/TopLevel.js
index f0c5302..2ca5f4b 100644
--- a/base/flow/test/inputs/json/misc/f82d9.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/f82d9.json/default/TopLevel.js
@@ -192,7 +192,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -203,7 +203,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/f974d.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/f974d.json/default/TopLevel.js
index 639b694..dd4155e 100644
--- a/base/flow/test/inputs/json/misc/f974d.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/f974d.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/faff5.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/faff5.json/default/TopLevel.js
index 2425915..75a5e56 100644
--- a/base/flow/test/inputs/json/misc/faff5.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/faff5.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/fcca3.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/fcca3.json/default/TopLevel.js
index b7ca334..041eda2 100644
--- a/base/flow/test/inputs/json/misc/fcca3.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/fcca3.json/default/TopLevel.js
@@ -320,7 +320,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -331,7 +331,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/misc/fd329.json/default/TopLevel.js b/head/flow/test/inputs/json/misc/fd329.json/default/TopLevel.js
index 1eccbad..22f369c 100644
--- a/base/flow/test/inputs/json/misc/fd329.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/misc/fd329.json/default/TopLevel.js
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/blns-object.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/blns-object.json/default/TopLevel.js
index 4486ec1..2aa5030 100644
--- a/base/flow/test/inputs/json/priority/blns-object.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/blns-object.json/default/TopLevel.js
@@ -702,7 +702,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -713,7 +713,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug2037.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug2037.json/default/TopLevel.js
index 6524a5e..3f6959b 100644
--- a/base/flow/test/inputs/json/priority/bug2037.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug2037.json/default/TopLevel.js
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -129,7 +129,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug2521.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug2521.json/default/TopLevel.js
index 7d43d7b..21f11dc 100644
--- a/base/flow/test/inputs/json/priority/bug2521.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug2521.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug2590.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug2590.json/default/TopLevel.js
index 31d6694..0b93750 100644
--- a/base/flow/test/inputs/json/priority/bug2590.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug2590.json/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug2663.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug2663.json/default/TopLevel.js
index b0f0629..5f3f0d6 100644
--- a/base/flow/test/inputs/json/priority/bug2663.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug2663.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug2793.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug2793.json/default/TopLevel.js
index 40f8379..0263cfc 100644
--- a/base/flow/test/inputs/json/priority/bug2793.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug2793.json/default/TopLevel.js
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug427.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug427.json/default/TopLevel.js
index 87141a4..752a1c7 100644
--- a/base/flow/test/inputs/json/priority/bug427.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug427.json/default/TopLevel.js
@@ -718,7 +718,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -729,7 +729,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug790.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug790.json/default/TopLevel.js
index 61aae0c..a653798 100644
--- a/base/flow/test/inputs/json/priority/bug790.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug790.json/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug855-short.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug855-short.json/default/TopLevel.js
index 9228688..0484f98 100644
--- a/base/flow/test/inputs/json/priority/bug855-short.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug855-short.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/bug863.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/bug863.json/default/TopLevel.js
index 2d45f63..b279e5d 100644
--- a/base/flow/test/inputs/json/priority/bug863.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/bug863.json/default/TopLevel.js
@@ -193,7 +193,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -204,7 +204,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/coin-pairs.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/coin-pairs.json/default/TopLevel.js
index ce2c15a..1aac081 100644
--- a/base/flow/test/inputs/json/priority/coin-pairs.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/coin-pairs.json/default/TopLevel.js
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations1.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/combinations1.json/default/TopLevel.js
index 892898a..d38ad26 100644
--- a/base/flow/test/inputs/json/priority/combinations1.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations1.json/default/TopLevel.js
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations1.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js b/head/flow/test/inputs/json/priority/combinations1.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
index 8bdf8ea..934c304 100644
--- a/base/flow/test/inputs/json/priority/combinations1.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations1.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations1.json/prefer-unions-false--a5053c0a486d/TopLevel.js b/head/flow/test/inputs/json/priority/combinations1.json/prefer-unions-false--a5053c0a486d/TopLevel.js
index 892898a..d38ad26 100644
--- a/base/flow/test/inputs/json/priority/combinations1.json/prefer-unions-false--a5053c0a486d/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations1.json/prefer-unions-false--a5053c0a486d/TopLevel.js
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations1.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js b/head/flow/test/inputs/json/priority/combinations1.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
index 892898a..d38ad26 100644
--- a/base/flow/test/inputs/json/priority/combinations1.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations1.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js b/head/flow/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
index 3e621e4..26958d3 100644
--- a/base/flow/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations2.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/combinations2.json/default/TopLevel.js
index 5199f24..c8ed5a7 100644
--- a/base/flow/test/inputs/json/priority/combinations2.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations2.json/default/TopLevel.js
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations2.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js b/head/flow/test/inputs/json/priority/combinations2.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
index c66bd33..43c7b65 100644
--- a/base/flow/test/inputs/json/priority/combinations2.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations2.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations2.json/prefer-unions-false--a5053c0a486d/TopLevel.js b/head/flow/test/inputs/json/priority/combinations2.json/prefer-unions-false--a5053c0a486d/TopLevel.js
index 5199f24..c8ed5a7 100644
--- a/base/flow/test/inputs/json/priority/combinations2.json/prefer-unions-false--a5053c0a486d/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations2.json/prefer-unions-false--a5053c0a486d/TopLevel.js
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations2.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js b/head/flow/test/inputs/json/priority/combinations2.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
index 5199f24..c8ed5a7 100644
--- a/base/flow/test/inputs/json/priority/combinations2.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations2.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js b/head/flow/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
index e565a44..898833a 100644
--- a/base/flow/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations3.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/combinations3.json/default/TopLevel.js
index a84f903..7aab8c3 100644
--- a/base/flow/test/inputs/json/priority/combinations3.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations3.json/default/TopLevel.js
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations3.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js b/head/flow/test/inputs/json/priority/combinations3.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
index 0be9d36..bc7ad49 100644
--- a/base/flow/test/inputs/json/priority/combinations3.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations3.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations3.json/prefer-unions-false--a5053c0a486d/TopLevel.js b/head/flow/test/inputs/json/priority/combinations3.json/prefer-unions-false--a5053c0a486d/TopLevel.js
index a84f903..7aab8c3 100644
--- a/base/flow/test/inputs/json/priority/combinations3.json/prefer-unions-false--a5053c0a486d/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations3.json/prefer-unions-false--a5053c0a486d/TopLevel.js
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations3.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js b/head/flow/test/inputs/json/priority/combinations3.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
index a84f903..7aab8c3 100644
--- a/base/flow/test/inputs/json/priority/combinations3.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations3.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js b/head/flow/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
index 1e61073..d8bc3d6 100644
--- a/base/flow/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations4.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/combinations4.json/default/TopLevel.js
index fb135e5..5172ba0 100644
--- a/base/flow/test/inputs/json/priority/combinations4.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations4.json/default/TopLevel.js
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations4.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js b/head/flow/test/inputs/json/priority/combinations4.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
index 4859842..177b92a 100644
--- a/base/flow/test/inputs/json/priority/combinations4.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations4.json/nice-property-names-true--f4d7920ee2ce/TopLevel.js
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations4.json/prefer-unions-false--a5053c0a486d/TopLevel.js b/head/flow/test/inputs/json/priority/combinations4.json/prefer-unions-false--a5053c0a486d/TopLevel.js
index fb135e5..5172ba0 100644
--- a/base/flow/test/inputs/json/priority/combinations4.json/prefer-unions-false--a5053c0a486d/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations4.json/prefer-unions-false--a5053c0a486d/TopLevel.js
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations4.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js b/head/flow/test/inputs/json/priority/combinations4.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
index fb135e5..5172ba0 100644
--- a/base/flow/test/inputs/json/priority/combinations4.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations4.json/prefer-unknown-false--f1ab9e45d823/TopLevel.js
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js b/head/flow/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
index ecd1d0c..36ce1d2 100644
--- a/base/flow/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/combined-enum.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/combined-enum.json/default/TopLevel.js
index f1b13bb..422d447 100644
--- a/base/flow/test/inputs/json/priority/combined-enum.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/combined-enum.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/direct-recursive.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/direct-recursive.json/default/TopLevel.js
index 57ff834..93591c3 100644
--- a/base/flow/test/inputs/json/priority/direct-recursive.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/direct-recursive.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/empty-enum.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/empty-enum.json/default/TopLevel.js
index 3eb2ee8..06a1baf 100644
--- a/base/flow/test/inputs/json/priority/empty-enum.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/empty-enum.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/identifiers.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/identifiers.json/default/TopLevel.js
index 7b97fb6..822c35a 100644
--- a/base/flow/test/inputs/json/priority/identifiers.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/identifiers.json/default/TopLevel.js
@@ -138,7 +138,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -149,7 +149,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.js
index 3304381..c71f035 100644
--- a/base/flow/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.js
index 57ef2c0..a894724 100644
--- a/base/flow/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.js
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/keywords.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/keywords.json/default/TopLevel.js
index c6c8e63..fb2bbab 100644
--- a/base/flow/test/inputs/json/priority/keywords.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/keywords.json/default/TopLevel.js
@@ -1831,7 +1831,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -1842,7 +1842,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.js
index f80ddb1..1909ad9 100644
--- a/base/flow/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/list.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/list.json/default/TopLevel.js
index 46b9ee9..0280c74 100644
--- a/base/flow/test/inputs/json/priority/list.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/list.json/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/name-style.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/name-style.json/default/TopLevel.js
index 26fd739..bdba130 100644
--- a/base/flow/test/inputs/json/priority/name-style.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/name-style.json/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/nbl-stats.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/nbl-stats.json/default/TopLevel.js
index bc67efb..5d938b7 100644
--- a/base/flow/test/inputs/json/priority/nbl-stats.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/nbl-stats.json/default/TopLevel.js
@@ -439,7 +439,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -450,7 +450,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/nested-objects.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/nested-objects.json/default/TopLevel.js
index 70f13bb..0e3d338 100644
--- a/base/flow/test/inputs/json/priority/nested-objects.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/nested-objects.json/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/no-classes.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/no-classes.json/default/TopLevel.js
index a8973a2..39cc484 100644
--- a/base/flow/test/inputs/json/priority/no-classes.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/no-classes.json/default/TopLevel.js
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.js
index 5f71ad1..72b4770 100644
--- a/base/flow/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.js
@@ -247,7 +247,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -258,7 +258,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/number-map.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/number-map.json/default/TopLevel.js
index cad18ef..30ae4d6 100644
--- a/base/flow/test/inputs/json/priority/number-map.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/number-map.json/default/TopLevel.js
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/omit-empty.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/omit-empty.json/default/TopLevel.js
index 0273271..c086ed3 100644
--- a/base/flow/test/inputs/json/priority/omit-empty.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/omit-empty.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/optional-union.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/optional-union.json/default/TopLevel.js
index 643d117..46ccba8 100644
--- a/base/flow/test/inputs/json/priority/optional-union.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/optional-union.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.js
index 4e4662d..323c98f 100644
--- a/base/flow/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/php-validation.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/php-validation.json/default/TopLevel.js
index 8b5565e..4deac1c 100644
--- a/base/flow/test/inputs/json/priority/php-validation.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/php-validation.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/recursive.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/recursive.json/default/TopLevel.js
index 3e0e277..f68675a 100644
--- a/base/flow/test/inputs/json/priority/recursive.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/recursive.json/default/TopLevel.js
@@ -226,7 +226,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -237,7 +237,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.js
index 4a7b9cd..d133076 100644
--- a/base/flow/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.js
index a3987a9..d2e6730 100644
--- a/base/flow/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/unions.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/unions.json/default/TopLevel.js
index 283c106..522a302 100644
--- a/base/flow/test/inputs/json/priority/unions.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/unions.json/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/url.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/url.json/default/TopLevel.js
index 4c1410e..e99ecd9 100644
--- a/base/flow/test/inputs/json/priority/url.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/url.json/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/priority/uuids.json/default/TopLevel.js b/head/flow/test/inputs/json/priority/uuids.json/default/TopLevel.js
index ff9d6dd..f9ab3e8 100644
--- a/base/flow/test/inputs/json/priority/uuids.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/priority/uuids.json/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.js
index 639b694..dd4155e 100644
--- a/base/flow/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/copy-with-property.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/copy-with-property.json/default/TopLevel.js
index 9f7c83e..65a77d0 100644
--- a/base/flow/test/inputs/json/samples/copy-with-property.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/copy-with-property.json/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/getting-started.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/getting-started.json/default/TopLevel.js
index 0a0728d..c79238c 100644
--- a/base/flow/test/inputs/json/samples/getting-started.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/getting-started.json/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/github-events.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/github-events.json/default/TopLevel.js
index f17022b..513f04a 100644
--- a/base/flow/test/inputs/json/samples/github-events.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/github-events.json/default/TopLevel.js
@@ -395,7 +395,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -406,7 +406,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.js
index 536024f..e823cd2 100644
--- a/base/flow/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.js
@@ -139,7 +139,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -150,7 +150,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/null-safe.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/null-safe.json/default/TopLevel.js
index aacaf95..63d0123 100644
--- a/base/flow/test/inputs/json/samples/null-safe.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/null-safe.json/default/TopLevel.js
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.js
index d7e76ba..e0052d5 100644
--- a/base/flow/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/pokedex.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/pokedex.json/default/TopLevel.js
index 74b9473..2f1fb91 100644
--- a/base/flow/test/inputs/json/samples/pokedex.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/pokedex.json/default/TopLevel.js
@@ -159,7 +159,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -170,7 +170,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/reddit.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/reddit.json/default/TopLevel.js
index 2f58942..24bb42e 100644
--- a/base/flow/test/inputs/json/samples/reddit.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/reddit.json/default/TopLevel.js
@@ -248,7 +248,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -259,7 +259,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/simple-object.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/simple-object.json/default/TopLevel.js
index 381cd53..9c99e75 100644
--- a/base/flow/test/inputs/json/samples/simple-object.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/simple-object.json/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/spotify-album.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/spotify-album.json/default/TopLevel.js
index 99106e9..cebdc47 100644
--- a/base/flow/test/inputs/json/samples/spotify-album.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/spotify-album.json/default/TopLevel.js
@@ -177,7 +177,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -188,7 +188,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.js
index 1eccbad..22f369c 100644
--- a/base/flow/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.js
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/flow/test/inputs/json/samples/us-senators.json/default/TopLevel.js b/head/flow/test/inputs/json/samples/us-senators.json/default/TopLevel.js
index a439e02..316d1f8 100644
--- a/base/flow/test/inputs/json/samples/us-senators.json/default/TopLevel.js
+++ b/head/flow/test/inputs/json/samples/us-senators.json/default/TopLevel.js
@@ -212,7 +212,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -223,7 +223,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github1.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github1.graphql/default/TopLevel.js
index e0890fb..aa140fd 100644
--- a/base/graphql-flow/test/inputs/graphql/github1.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github1.graphql/default/TopLevel.js
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github2.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github2.graphql/default/TopLevel.js
index 17c0615..970a805 100644
--- a/base/graphql-flow/test/inputs/graphql/github2.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github2.graphql/default/TopLevel.js
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -141,7 +141,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github3.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github3.graphql/default/TopLevel.js
index 4e2fad5..a0a1eae 100644
--- a/base/graphql-flow/test/inputs/graphql/github3.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github3.graphql/default/TopLevel.js
@@ -138,7 +138,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -149,7 +149,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github4.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github4.graphql/default/TopLevel.js
index 6970141..eff8131 100644
--- a/base/graphql-flow/test/inputs/graphql/github4.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github4.graphql/default/TopLevel.js
@@ -139,7 +139,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -150,7 +150,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github5.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github5.graphql/default/TopLevel.js
index 6f93b2c..17d7020 100644
--- a/base/graphql-flow/test/inputs/graphql/github5.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github5.graphql/default/TopLevel.js
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github6.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github6.graphql/default/TopLevel.js
index 82910a8..3eec7e0 100644
--- a/base/graphql-flow/test/inputs/graphql/github6.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github6.graphql/default/TopLevel.js
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github7.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github7.graphql/default/TopLevel.js
index 144e435..b30a466 100644
--- a/base/graphql-flow/test/inputs/graphql/github7.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github7.graphql/default/TopLevel.js
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -153,7 +153,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github8.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github8.graphql/default/TopLevel.js
index 0a8d281..7f153bb 100644
--- a/base/graphql-flow/test/inputs/graphql/github8.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github8.graphql/default/TopLevel.js
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -143,7 +143,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-flow/test/inputs/graphql/github9.graphql/default/TopLevel.js b/head/graphql-flow/test/inputs/graphql/github9.graphql/default/TopLevel.js
index 4244d70..760d886 100644
--- a/base/graphql-flow/test/inputs/graphql/github9.graphql/default/TopLevel.js
+++ b/head/graphql-flow/test/inputs/graphql/github9.graphql/default/TopLevel.js
@@ -139,7 +139,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -150,7 +150,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github1.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github1.graphql/default/TopLevel.js
index a908803..adda7dc 100644
--- a/base/graphql-javascript/test/inputs/graphql/github1.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github1.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github2.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github2.graphql/default/TopLevel.js
index 327d7fd..1326964 100644
--- a/base/graphql-javascript/test/inputs/graphql/github2.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github2.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github3.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github3.graphql/default/TopLevel.js
index 1f86530..74ffea9 100644
--- a/base/graphql-javascript/test/inputs/graphql/github3.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github3.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github4.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github4.graphql/default/TopLevel.js
index 9eae08b..aac5268 100644
--- a/base/graphql-javascript/test/inputs/graphql/github4.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github4.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github5.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github5.graphql/default/TopLevel.js
index 420ace9..621c2a3 100644
--- a/base/graphql-javascript/test/inputs/graphql/github5.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github5.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github6.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github6.graphql/default/TopLevel.js
index 15c6fba..4296f01 100644
--- a/base/graphql-javascript/test/inputs/graphql/github6.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github6.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github7.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github7.graphql/default/TopLevel.js
index 4249720..5fc3c12 100644
--- a/base/graphql-javascript/test/inputs/graphql/github7.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github7.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github8.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github8.graphql/default/TopLevel.js
index fd6d83e..1cfce39 100644
--- a/base/graphql-javascript/test/inputs/graphql/github8.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github8.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-javascript/test/inputs/graphql/github9.graphql/default/TopLevel.js b/head/graphql-javascript/test/inputs/graphql/github9.graphql/default/TopLevel.js
index f9c07fe..bc93726 100644
--- a/base/graphql-javascript/test/inputs/graphql/github9.graphql/default/TopLevel.js
+++ b/head/graphql-javascript/test/inputs/graphql/github9.graphql/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github1.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github1.graphql/default/TopLevel.ts
index 578c5da..16124f1 100644
--- a/base/graphql-typescript/test/inputs/graphql/github1.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github1.graphql/default/TopLevel.ts
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github2.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github2.graphql/default/TopLevel.ts
index c8dc669..3451109 100644
--- a/base/graphql-typescript/test/inputs/graphql/github2.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github2.graphql/default/TopLevel.ts
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -141,7 +141,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github3.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github3.graphql/default/TopLevel.ts
index 3a9ea88..33e7581 100644
--- a/base/graphql-typescript/test/inputs/graphql/github3.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github3.graphql/default/TopLevel.ts
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github4.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github4.graphql/default/TopLevel.ts
index 2365eaf..e7379b2 100644
--- a/base/graphql-typescript/test/inputs/graphql/github4.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github4.graphql/default/TopLevel.ts
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github5.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github5.graphql/default/TopLevel.ts
index acdc9b7..5bf1752 100644
--- a/base/graphql-typescript/test/inputs/graphql/github5.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github5.graphql/default/TopLevel.ts
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github6.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github6.graphql/default/TopLevel.ts
index 020032a..f146724 100644
--- a/base/graphql-typescript/test/inputs/graphql/github6.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github6.graphql/default/TopLevel.ts
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github7.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github7.graphql/default/TopLevel.ts
index a0952a7..72a789e 100644
--- a/base/graphql-typescript/test/inputs/graphql/github7.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github7.graphql/default/TopLevel.ts
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -153,7 +153,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github8.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github8.graphql/default/TopLevel.ts
index 09a4037..4e38156 100644
--- a/base/graphql-typescript/test/inputs/graphql/github8.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github8.graphql/default/TopLevel.ts
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -141,7 +141,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/graphql-typescript/test/inputs/graphql/github9.graphql/default/TopLevel.ts b/head/graphql-typescript/test/inputs/graphql/github9.graphql/default/TopLevel.ts
index 9d653c2..1d89aba 100644
--- a/base/graphql-typescript/test/inputs/graphql/github9.graphql/default/TopLevel.ts
+++ b/head/graphql-typescript/test/inputs/graphql/github9.graphql/default/TopLevel.ts
@@ -133,7 +133,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -144,7 +144,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/00c36.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/00c36.json/default/TopLevel.js
index 7bde2a3..a0d11c8 100644
--- a/base/javascript/test/inputs/json/misc/00c36.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/00c36.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/00ec5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/00ec5.json/default/TopLevel.js
index e58994e..8e48e5e 100644
--- a/base/javascript/test/inputs/json/misc/00ec5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/00ec5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/010b1.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/010b1.json/default/TopLevel.js
index 5072650..c5fd155 100644
--- a/base/javascript/test/inputs/json/misc/010b1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/010b1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/016af.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/016af.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/016af.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/016af.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/033b1.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/033b1.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/033b1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/033b1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/050b0.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/050b0.json/default/TopLevel.js
index b031cf3..fb642f7 100644
--- a/base/javascript/test/inputs/json/misc/050b0.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/050b0.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/06bee.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/06bee.json/default/TopLevel.js
index 4ed3634..c9e01ac 100644
--- a/base/javascript/test/inputs/json/misc/06bee.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/06bee.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/07540.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/07540.json/default/TopLevel.js
index ae8169d..79cbb0a 100644
--- a/base/javascript/test/inputs/json/misc/07540.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/07540.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/0779f.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/0779f.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/0779f.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/0779f.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/07c75.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/07c75.json/default/TopLevel.js
index 8c10240..3eba7b9 100644
--- a/base/javascript/test/inputs/json/misc/07c75.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/07c75.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/09f54.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/09f54.json/default/TopLevel.js
index d23e2d7..eb82c03 100644
--- a/base/javascript/test/inputs/json/misc/09f54.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/09f54.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/0a358.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/0a358.json/default/TopLevel.js
index cc5cbe0..8000c5f 100644
--- a/base/javascript/test/inputs/json/misc/0a358.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/0a358.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/0a91a.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/0a91a.json/default/TopLevel.js
index 874e0da..49aad5c 100644
--- a/base/javascript/test/inputs/json/misc/0a91a.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/0a91a.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/0b91a.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/0b91a.json/default/TopLevel.js
index 3b6f02b..28ede7a 100644
--- a/base/javascript/test/inputs/json/misc/0b91a.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/0b91a.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/0cffa.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/0cffa.json/default/TopLevel.js
index 4921f33..dc4294c 100644
--- a/base/javascript/test/inputs/json/misc/0cffa.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/0cffa.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/0e0c2.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/0e0c2.json/default/TopLevel.js
index d74c94d..c741d40 100644
--- a/base/javascript/test/inputs/json/misc/0e0c2.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/0e0c2.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/0fecf.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/0fecf.json/default/TopLevel.js
index c350529..24f3782 100644
--- a/base/javascript/test/inputs/json/misc/0fecf.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/0fecf.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/10be4.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/10be4.json/default/TopLevel.js
index 0f11bea..12ba177 100644
--- a/base/javascript/test/inputs/json/misc/10be4.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/10be4.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/112b5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/112b5.json/default/TopLevel.js
index 988b2e3..b56d621 100644
--- a/base/javascript/test/inputs/json/misc/112b5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/112b5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/127a1.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/127a1.json/default/TopLevel.js
index 5029be5..72c9c86 100644
--- a/base/javascript/test/inputs/json/misc/127a1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/127a1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/13d8d.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/13d8d.json/default/TopLevel.js
index 1804248..00b4f10 100644
--- a/base/javascript/test/inputs/json/misc/13d8d.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/13d8d.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/14d38.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/14d38.json/default/TopLevel.js
index 5d15cc8..c4cc35e 100644
--- a/base/javascript/test/inputs/json/misc/14d38.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/14d38.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/167d6.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/167d6.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/167d6.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/167d6.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/16bc5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/16bc5.json/default/TopLevel.js
index acd1fb9..5f0166c 100644
--- a/base/javascript/test/inputs/json/misc/16bc5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/16bc5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/176f1.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/176f1.json/default/TopLevel.js
index 351e84a..3f2aa62 100644
--- a/base/javascript/test/inputs/json/misc/176f1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/176f1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/1a7f5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/1a7f5.json/default/TopLevel.js
index 5072650..c5fd155 100644
--- a/base/javascript/test/inputs/json/misc/1a7f5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/1a7f5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/1b28c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/1b28c.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/1b28c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/1b28c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/1b409.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/1b409.json/default/TopLevel.js
index 8192aa5..47aaa20 100644
--- a/base/javascript/test/inputs/json/misc/1b409.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/1b409.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/2465e.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/2465e.json/default/TopLevel.js
index 6a33ed2..81402e2 100644
--- a/base/javascript/test/inputs/json/misc/2465e.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/2465e.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/24f52.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/24f52.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/24f52.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/24f52.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/262f0.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/262f0.json/default/TopLevel.js
index fdbfeea..ab64fd6 100644
--- a/base/javascript/test/inputs/json/misc/262f0.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/262f0.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/26b49.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/26b49.json/default/TopLevel.js
index ca1a4e9..e4ca4cb 100644
--- a/base/javascript/test/inputs/json/misc/26b49.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/26b49.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/26c9c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/26c9c.json/default/TopLevel.js
index 9ef5a1a..b502e49 100644
--- a/base/javascript/test/inputs/json/misc/26c9c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/26c9c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/27332.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/27332.json/default/TopLevel.js
index 06e876f..be03980 100644
--- a/base/javascript/test/inputs/json/misc/27332.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/27332.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/29f47.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/29f47.json/default/TopLevel.js
index a46f0c7..ff1703e 100644
--- a/base/javascript/test/inputs/json/misc/29f47.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/29f47.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/2d4e2.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/2d4e2.json/default/TopLevel.js
index dabaf9d..04b2a37 100644
--- a/base/javascript/test/inputs/json/misc/2d4e2.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/2d4e2.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/2df80.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/2df80.json/default/TopLevel.js
index 5fc4099..e4ba9bb 100644
--- a/base/javascript/test/inputs/json/misc/2df80.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/2df80.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/31189.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/31189.json/default/TopLevel.js
index d0130c4..468f73b 100644
--- a/base/javascript/test/inputs/json/misc/31189.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/31189.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/32431.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/32431.json/default/TopLevel.js
index 59f34aa..8574865 100644
--- a/base/javascript/test/inputs/json/misc/32431.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/32431.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/32d5c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/32d5c.json/default/TopLevel.js
index 6f852a2..d7f5885 100644
--- a/base/javascript/test/inputs/json/misc/32d5c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/32d5c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/337ed.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/337ed.json/default/TopLevel.js
index 68c9784..c2906b6 100644
--- a/base/javascript/test/inputs/json/misc/337ed.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/337ed.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/33d2e.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/33d2e.json/default/TopLevel.js
index 6d3e524..7def82c 100644
--- a/base/javascript/test/inputs/json/misc/33d2e.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/33d2e.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/34702.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/34702.json/default/TopLevel.js
index f70dc0b..9d11a02 100644
--- a/base/javascript/test/inputs/json/misc/34702.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/34702.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/3536b.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/3536b.json/default/TopLevel.js
index 5fc3e3b..09afdf9 100644
--- a/base/javascript/test/inputs/json/misc/3536b.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/3536b.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/3659d.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/3659d.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/3659d.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/3659d.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/36d5d.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/36d5d.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/36d5d.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/36d5d.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/3a6b3.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/3a6b3.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/3a6b3.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/3a6b3.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/3e9a3.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/3e9a3.json/default/TopLevel.js
index 351e84a..3f2aa62 100644
--- a/base/javascript/test/inputs/json/misc/3e9a3.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/3e9a3.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/3f1ce.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/3f1ce.json/default/TopLevel.js
index b6b4271..9407f27 100644
--- a/base/javascript/test/inputs/json/misc/3f1ce.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/3f1ce.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/421d4.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/421d4.json/default/TopLevel.js
index e80c8de..67e2770 100644
--- a/base/javascript/test/inputs/json/misc/421d4.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/421d4.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/437e7.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/437e7.json/default/TopLevel.js
index 0c1fbce..bb05c0f 100644
--- a/base/javascript/test/inputs/json/misc/437e7.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/437e7.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/43970.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/43970.json/default/TopLevel.js
index 4e4bfd1..ff817c6 100644
--- a/base/javascript/test/inputs/json/misc/43970.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/43970.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/43eaf.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/43eaf.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/43eaf.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/43eaf.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/458db.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/458db.json/default/TopLevel.js
index 0899bf9..2785ed7 100644
--- a/base/javascript/test/inputs/json/misc/458db.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/458db.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/4961a.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/4961a.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/4961a.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/4961a.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/4a0d7.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/4a0d7.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/4a0d7.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/4a0d7.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/4a455.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/4a455.json/default/TopLevel.js
index 405a535..1b32e84 100644
--- a/base/javascript/test/inputs/json/misc/4a455.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/4a455.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/4c547.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/4c547.json/default/TopLevel.js
index acd1fb9..5f0166c 100644
--- a/base/javascript/test/inputs/json/misc/4c547.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/4c547.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/4d6fb.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/4d6fb.json/default/TopLevel.js
index e8d6e16..339cca8 100644
--- a/base/javascript/test/inputs/json/misc/4d6fb.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/4d6fb.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/4e336.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/4e336.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/4e336.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/4e336.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/54147.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/54147.json/default/TopLevel.js
index 8f17e68..383e402 100644
--- a/base/javascript/test/inputs/json/misc/54147.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/54147.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/54d32.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/54d32.json/default/TopLevel.js
index d676c8d..8fa6866 100644
--- a/base/javascript/test/inputs/json/misc/54d32.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/54d32.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/570ec.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/570ec.json/default/TopLevel.js
index 6ecbade..14b561c 100644
--- a/base/javascript/test/inputs/json/misc/570ec.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/570ec.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/5dd0d.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/5dd0d.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/5dd0d.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/5dd0d.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/5eae5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/5eae5.json/default/TopLevel.js
index f49ab65..81624a8 100644
--- a/base/javascript/test/inputs/json/misc/5eae5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/5eae5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/5eb20.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/5eb20.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/5eb20.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/5eb20.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/5f3a1.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/5f3a1.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/5f3a1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/5f3a1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/5f7fe.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/5f7fe.json/default/TopLevel.js
index 69bd742..3ce68b1 100644
--- a/base/javascript/test/inputs/json/misc/5f7fe.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/5f7fe.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/617e8.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/617e8.json/default/TopLevel.js
index c7de983..b06641f 100644
--- a/base/javascript/test/inputs/json/misc/617e8.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/617e8.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/61b66.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/61b66.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/61b66.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/61b66.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/6260a.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/6260a.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/6260a.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/6260a.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/65dec.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/65dec.json/default/TopLevel.js
index 5747bf4..5f3d0a5 100644
--- a/base/javascript/test/inputs/json/misc/65dec.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/65dec.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/66121.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/66121.json/default/TopLevel.js
index 6b45478..1d77f00 100644
--- a/base/javascript/test/inputs/json/misc/66121.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/66121.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/6617c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/6617c.json/default/TopLevel.js
index c893589..ccdfbc7 100644
--- a/base/javascript/test/inputs/json/misc/6617c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/6617c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/67c03.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/67c03.json/default/TopLevel.js
index 8cc7071..ba08d4f 100644
--- a/base/javascript/test/inputs/json/misc/67c03.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/67c03.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/68c30.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/68c30.json/default/TopLevel.js
index 0e491bb..0013ca4 100644
--- a/base/javascript/test/inputs/json/misc/68c30.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/68c30.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/6c155.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/6c155.json/default/TopLevel.js
index 787e7f9..b3178f9 100644
--- a/base/javascript/test/inputs/json/misc/6c155.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/6c155.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/6de06.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/6de06.json/default/TopLevel.js
index bcdf20d..e617e3a 100644
--- a/base/javascript/test/inputs/json/misc/6de06.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/6de06.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/6dec6.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/6dec6.json/default/TopLevel.js
index c65a864..c893c70 100644
--- a/base/javascript/test/inputs/json/misc/6dec6.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/6dec6.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/6eb00.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/6eb00.json/default/TopLevel.js
index 7d4472c..426f04a 100644
--- a/base/javascript/test/inputs/json/misc/6eb00.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/6eb00.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/70c77.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/70c77.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/70c77.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/70c77.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/734ad.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/734ad.json/default/TopLevel.js
index 2dd7df3..aaa9476 100644
--- a/base/javascript/test/inputs/json/misc/734ad.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/734ad.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/75912.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/75912.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/75912.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/75912.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/7681c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/7681c.json/default/TopLevel.js
index c3f9405..414c291 100644
--- a/base/javascript/test/inputs/json/misc/7681c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/7681c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/76ae1.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/76ae1.json/default/TopLevel.js
index 177fff6..f84b686 100644
--- a/base/javascript/test/inputs/json/misc/76ae1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/76ae1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/77392.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/77392.json/default/TopLevel.js
index ad4ed63..9bf79a3 100644
--- a/base/javascript/test/inputs/json/misc/77392.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/77392.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/7d397.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/7d397.json/default/TopLevel.js
index 2ba2912..2e83e9f 100644
--- a/base/javascript/test/inputs/json/misc/7d397.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/7d397.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/7d722.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/7d722.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/7d722.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/7d722.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/7df41.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/7df41.json/default/TopLevel.js
index 4989112..9f7ff61 100644
--- a/base/javascript/test/inputs/json/misc/7df41.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/7df41.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/7dfa6.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/7dfa6.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/7dfa6.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/7dfa6.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/7eb30.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/7eb30.json/default/TopLevel.js
index 5a22b1c..f37c66d 100644
--- a/base/javascript/test/inputs/json/misc/7eb30.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/7eb30.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/7f568.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/7f568.json/default/TopLevel.js
index 03269ce..82a8118 100644
--- a/base/javascript/test/inputs/json/misc/7f568.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/7f568.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/7fbfb.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/7fbfb.json/default/TopLevel.js
index 6bca24b..8000931 100644
--- a/base/javascript/test/inputs/json/misc/7fbfb.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/7fbfb.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/80aff.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/80aff.json/default/TopLevel.js
index e7036f9..34b371b 100644
--- a/base/javascript/test/inputs/json/misc/80aff.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/80aff.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/82509.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/82509.json/default/TopLevel.js
index 59da7ef..368c983 100644
--- a/base/javascript/test/inputs/json/misc/82509.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/82509.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/8592b.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/8592b.json/default/TopLevel.js
index fb2baf4..5186f05 100644
--- a/base/javascript/test/inputs/json/misc/8592b.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/8592b.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/88130.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/88130.json/default/TopLevel.js
index acd1fb9..5f0166c 100644
--- a/base/javascript/test/inputs/json/misc/88130.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/88130.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/8a62c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/8a62c.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/8a62c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/8a62c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/908db.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/908db.json/default/TopLevel.js
index 47fd602..8a23010 100644
--- a/base/javascript/test/inputs/json/misc/908db.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/908db.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/9617f.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/9617f.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/9617f.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/9617f.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/96f7c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/96f7c.json/default/TopLevel.js
index f4e553d..fb4c941 100644
--- a/base/javascript/test/inputs/json/misc/96f7c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/96f7c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/9847b.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/9847b.json/default/TopLevel.js
index b2fbeb7..bdfbe08 100644
--- a/base/javascript/test/inputs/json/misc/9847b.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/9847b.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/9929c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/9929c.json/default/TopLevel.js
index acd1fb9..5f0166c 100644
--- a/base/javascript/test/inputs/json/misc/9929c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/9929c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/996bd.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/996bd.json/default/TopLevel.js
index a623356..bc7841f 100644
--- a/base/javascript/test/inputs/json/misc/996bd.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/996bd.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/9a503.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/9a503.json/default/TopLevel.js
index b655f68..258fa04 100644
--- a/base/javascript/test/inputs/json/misc/9a503.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/9a503.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/9ac3b.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/9ac3b.json/default/TopLevel.js
index 94ebbc9..97749e4 100644
--- a/base/javascript/test/inputs/json/misc/9ac3b.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/9ac3b.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/9eed5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/9eed5.json/default/TopLevel.js
index 865f78d..c8d3bbd 100644
--- a/base/javascript/test/inputs/json/misc/9eed5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/9eed5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/a0496.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/a0496.json/default/TopLevel.js
index 4cbbdc6..d67cfb6 100644
--- a/base/javascript/test/inputs/json/misc/a0496.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/a0496.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/a1eca.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/a1eca.json/default/TopLevel.js
index acd1fb9..5f0166c 100644
--- a/base/javascript/test/inputs/json/misc/a1eca.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/a1eca.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/a3d8c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/a3d8c.json/default/TopLevel.js
index 47ca086..b9cce95 100644
--- a/base/javascript/test/inputs/json/misc/a3d8c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/a3d8c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/a45b0.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/a45b0.json/default/TopLevel.js
index 5072650..c5fd155 100644
--- a/base/javascript/test/inputs/json/misc/a45b0.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/a45b0.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/a71df.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/a71df.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/a71df.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/a71df.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/a9691.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/a9691.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/a9691.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/a9691.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/ab0d1.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/ab0d1.json/default/TopLevel.js
index 5072650..c5fd155 100644
--- a/base/javascript/test/inputs/json/misc/ab0d1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/ab0d1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/abb4b.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/abb4b.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/abb4b.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/abb4b.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/ac944.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/ac944.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/ac944.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/ac944.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/ad8be.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/ad8be.json/default/TopLevel.js
index 0f11bea..12ba177 100644
--- a/base/javascript/test/inputs/json/misc/ad8be.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/ad8be.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/ae7f0.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/ae7f0.json/default/TopLevel.js
index 58067a6..07ffaa4 100644
--- a/base/javascript/test/inputs/json/misc/ae7f0.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/ae7f0.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/ae9ca.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/ae9ca.json/default/TopLevel.js
index a469f40..f755f0a 100644
--- a/base/javascript/test/inputs/json/misc/ae9ca.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/ae9ca.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/af2d1.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/af2d1.json/default/TopLevel.js
index 61c13f0..e7b1820 100644
--- a/base/javascript/test/inputs/json/misc/af2d1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/af2d1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/b4865.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/b4865.json/default/TopLevel.js
index c92e808..9f6f40f 100644
--- a/base/javascript/test/inputs/json/misc/b4865.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/b4865.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/b6f2c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/b6f2c.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/b6f2c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/b6f2c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/b6fe5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/b6fe5.json/default/TopLevel.js
index b614cc0..e607419 100644
--- a/base/javascript/test/inputs/json/misc/b6fe5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/b6fe5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/b9f64.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/b9f64.json/default/TopLevel.js
index f1717c7..f7755ad 100644
--- a/base/javascript/test/inputs/json/misc/b9f64.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/b9f64.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/bb1ec.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/bb1ec.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/bb1ec.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/bb1ec.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/be234.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/be234.json/default/TopLevel.js
index 23847ff..76a5e10 100644
--- a/base/javascript/test/inputs/json/misc/be234.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/be234.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/c0356.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/c0356.json/default/TopLevel.js
index 438a6fc..592fdbf 100644
--- a/base/javascript/test/inputs/json/misc/c0356.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/c0356.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/c0a3a.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/c0a3a.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/c0a3a.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/c0a3a.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/c3303.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/c3303.json/default/TopLevel.js
index 2c286be..9e9d9eb 100644
--- a/base/javascript/test/inputs/json/misc/c3303.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/c3303.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/c6cfd.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/c6cfd.json/default/TopLevel.js
index ef2d6e9..d6ef2d0 100644
--- a/base/javascript/test/inputs/json/misc/c6cfd.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/c6cfd.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/c8c7e.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/c8c7e.json/default/TopLevel.js
index ae17f28..aa73f8e 100644
--- a/base/javascript/test/inputs/json/misc/c8c7e.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/c8c7e.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/cb0cc.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/cb0cc.json/default/TopLevel.js
index c408c01..9af3182 100644
--- a/base/javascript/test/inputs/json/misc/cb0cc.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/cb0cc.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/cb81e.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/cb81e.json/default/TopLevel.js
index 150dfff..73c0c0d 100644
--- a/base/javascript/test/inputs/json/misc/cb81e.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/cb81e.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/ccd18.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/ccd18.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/ccd18.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/ccd18.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/cd238.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/cd238.json/default/TopLevel.js
index 7ed503d..65866fa 100644
--- a/base/javascript/test/inputs/json/misc/cd238.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/cd238.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/cd463.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/cd463.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/cd463.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/cd463.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/cda6c.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/cda6c.json/default/TopLevel.js
index 97e4dd1..cbbe822 100644
--- a/base/javascript/test/inputs/json/misc/cda6c.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/cda6c.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/cf0d8.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/cf0d8.json/default/TopLevel.js
index acd1fb9..5f0166c 100644
--- a/base/javascript/test/inputs/json/misc/cf0d8.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/cf0d8.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/cfbce.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/cfbce.json/default/TopLevel.js
index b5bc8f9..a22c659 100644
--- a/base/javascript/test/inputs/json/misc/cfbce.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/cfbce.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/d0908.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/d0908.json/default/TopLevel.js
index a8a2cb9..1c3c149 100644
--- a/base/javascript/test/inputs/json/misc/d0908.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/d0908.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/d23d5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/d23d5.json/default/TopLevel.js
index e5a1acd..bd04ff0 100644
--- a/base/javascript/test/inputs/json/misc/d23d5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/d23d5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/dbfb3.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/dbfb3.json/default/TopLevel.js
index ab0231f..87d2f58 100644
--- a/base/javascript/test/inputs/json/misc/dbfb3.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/dbfb3.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/dc44f.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/dc44f.json/default/TopLevel.js
index 3290a2f..8a7c348 100644
--- a/base/javascript/test/inputs/json/misc/dc44f.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/dc44f.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/dd1ce.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/dd1ce.json/default/TopLevel.js
index 3290a2f..8a7c348 100644
--- a/base/javascript/test/inputs/json/misc/dd1ce.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/dd1ce.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/dec3a.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/dec3a.json/default/TopLevel.js
index a1a1ab7..28efc8f 100644
--- a/base/javascript/test/inputs/json/misc/dec3a.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/dec3a.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/df957.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/df957.json/default/TopLevel.js
index acd1fb9..5f0166c 100644
--- a/base/javascript/test/inputs/json/misc/df957.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/df957.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/e0ac7.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/e0ac7.json/default/TopLevel.js
index 0985cf4..ba2b40d 100644
--- a/base/javascript/test/inputs/json/misc/e0ac7.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/e0ac7.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/e2915.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/e2915.json/default/TopLevel.js
index fd7fefa..73a1ab0 100644
--- a/base/javascript/test/inputs/json/misc/e2915.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/e2915.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/e2a58.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/e2a58.json/default/TopLevel.js
index 0859361..8630f66 100644
--- a/base/javascript/test/inputs/json/misc/e2a58.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/e2a58.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/e324e.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/e324e.json/default/TopLevel.js
index fa10af3..bce9162 100644
--- a/base/javascript/test/inputs/json/misc/e324e.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/e324e.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/e53b5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/e53b5.json/default/TopLevel.js
index ec39a74..99b31a8 100644
--- a/base/javascript/test/inputs/json/misc/e53b5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/e53b5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/e64a0.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/e64a0.json/default/TopLevel.js
index 988b2e3..b56d621 100644
--- a/base/javascript/test/inputs/json/misc/e64a0.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/e64a0.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/e8a0b.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/e8a0b.json/default/TopLevel.js
index 5072650..c5fd155 100644
--- a/base/javascript/test/inputs/json/misc/e8a0b.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/e8a0b.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/e8b04.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/e8b04.json/default/TopLevel.js
index cfb13df..4906de7 100644
--- a/base/javascript/test/inputs/json/misc/e8b04.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/e8b04.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/ed095.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/ed095.json/default/TopLevel.js
index 12ecaff..98fe333 100644
--- a/base/javascript/test/inputs/json/misc/ed095.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/ed095.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/f22f5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/f22f5.json/default/TopLevel.js
index e7d55b9..659d4bb 100644
--- a/base/javascript/test/inputs/json/misc/f22f5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/f22f5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/f3139.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/f3139.json/default/TopLevel.js
index b2fbeb7..bdfbe08 100644
--- a/base/javascript/test/inputs/json/misc/f3139.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/f3139.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/f3edf.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/f3edf.json/default/TopLevel.js
index 5072650..c5fd155 100644
--- a/base/javascript/test/inputs/json/misc/f3edf.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/f3edf.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/f466a.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/f466a.json/default/TopLevel.js
index 5072650..c5fd155 100644
--- a/base/javascript/test/inputs/json/misc/f466a.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/f466a.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/f6a65.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/f6a65.json/default/TopLevel.js
index 2c60e6b..ee8675e 100644
--- a/base/javascript/test/inputs/json/misc/f6a65.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/f6a65.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/f74d5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/f74d5.json/default/TopLevel.js
index 580e744..0249c78 100644
--- a/base/javascript/test/inputs/json/misc/f74d5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/f74d5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/f82d9.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/f82d9.json/default/TopLevel.js
index 2df6837..70985ce 100644
--- a/base/javascript/test/inputs/json/misc/f82d9.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/f82d9.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/f974d.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/f974d.json/default/TopLevel.js
index 22fb238..93b54f7 100644
--- a/base/javascript/test/inputs/json/misc/f974d.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/f974d.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/faff5.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/faff5.json/default/TopLevel.js
index 984006a..f406ca7 100644
--- a/base/javascript/test/inputs/json/misc/faff5.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/faff5.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/fcca3.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/fcca3.json/default/TopLevel.js
index e17f74c..8a22a06 100644
--- a/base/javascript/test/inputs/json/misc/fcca3.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/fcca3.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/misc/fd329.json/default/TopLevel.js b/head/javascript/test/inputs/json/misc/fd329.json/default/TopLevel.js
index d23e2d7..eb82c03 100644
--- a/base/javascript/test/inputs/json/misc/fd329.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/misc/fd329.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/blns-object.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/blns-object.json/default/TopLevel.js
index 02c4dcf..51d565f 100644
--- a/base/javascript/test/inputs/json/priority/blns-object.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/blns-object.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug2037.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug2037.json/default/TopLevel.js
index 4db6c3c..25843f3 100644
--- a/base/javascript/test/inputs/json/priority/bug2037.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug2037.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug2521.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug2521.json/default/TopLevel.js
index 439166c..58c7287 100644
--- a/base/javascript/test/inputs/json/priority/bug2521.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug2521.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug2590.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug2590.json/default/TopLevel.js
index 6c8f4c3..1adc210 100644
--- a/base/javascript/test/inputs/json/priority/bug2590.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug2590.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug2663.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug2663.json/default/TopLevel.js
index c6916a2..89a9613 100644
--- a/base/javascript/test/inputs/json/priority/bug2663.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug2663.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug2793.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug2793.json/default/TopLevel.js
index 4b2fe59..66b493e 100644
--- a/base/javascript/test/inputs/json/priority/bug2793.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug2793.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug427.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug427.json/default/TopLevel.js
index 0e23edd..3037dc1 100644
--- a/base/javascript/test/inputs/json/priority/bug427.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug427.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug790.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug790.json/default/TopLevel.js
index 076984a..887407d 100644
--- a/base/javascript/test/inputs/json/priority/bug790.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug790.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug855-short.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug855-short.json/default/TopLevel.js
index bd2794c..58262a2 100644
--- a/base/javascript/test/inputs/json/priority/bug855-short.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug855-short.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/bug863.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/bug863.json/default/TopLevel.js
index cabd493..04ecdb7 100644
--- a/base/javascript/test/inputs/json/priority/bug863.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/bug863.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/coin-pairs.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/coin-pairs.json/default/TopLevel.js
index c113e96..86a658c 100644
--- a/base/javascript/test/inputs/json/priority/coin-pairs.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/coin-pairs.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations1.json/converters-top-level--67aa452ed509/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations1.json/converters-top-level--67aa452ed509/TopLevel.js
index c6b3420..f892b12 100644
--- a/base/javascript/test/inputs/json/priority/combinations1.json/converters-top-level--67aa452ed509/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations1.json/converters-top-level--67aa452ed509/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations1.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations1.json/default/TopLevel.js
index c6b3420..f892b12 100644
--- a/base/javascript/test/inputs/json/priority/combinations1.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations1.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations1.json/raw-type-any--474b307c39db/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations1.json/raw-type-any--474b307c39db/TopLevel.js
index e220990..330fc81 100644
--- a/base/javascript/test/inputs/json/priority/combinations1.json/raw-type-any--474b307c39db/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations1.json/raw-type-any--474b307c39db/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
index 957f00f..26e1699 100644
--- a/base/javascript/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations2.json/converters-top-level--67aa452ed509/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations2.json/converters-top-level--67aa452ed509/TopLevel.js
index 8de8df6..ffb5ba9 100644
--- a/base/javascript/test/inputs/json/priority/combinations2.json/converters-top-level--67aa452ed509/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations2.json/converters-top-level--67aa452ed509/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations2.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations2.json/default/TopLevel.js
index 8de8df6..ffb5ba9 100644
--- a/base/javascript/test/inputs/json/priority/combinations2.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations2.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations2.json/raw-type-any--474b307c39db/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations2.json/raw-type-any--474b307c39db/TopLevel.js
index 2362827..d333075 100644
--- a/base/javascript/test/inputs/json/priority/combinations2.json/raw-type-any--474b307c39db/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations2.json/raw-type-any--474b307c39db/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
index fbb3c93..e64d8d3 100644
--- a/base/javascript/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations3.json/converters-top-level--67aa452ed509/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations3.json/converters-top-level--67aa452ed509/TopLevel.js
index 7bdc1a8..cfa572b 100644
--- a/base/javascript/test/inputs/json/priority/combinations3.json/converters-top-level--67aa452ed509/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations3.json/converters-top-level--67aa452ed509/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations3.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations3.json/default/TopLevel.js
index 7bdc1a8..cfa572b 100644
--- a/base/javascript/test/inputs/json/priority/combinations3.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations3.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations3.json/raw-type-any--474b307c39db/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations3.json/raw-type-any--474b307c39db/TopLevel.js
index 0fc1b77..547f01c 100644
--- a/base/javascript/test/inputs/json/priority/combinations3.json/raw-type-any--474b307c39db/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations3.json/raw-type-any--474b307c39db/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
index d88ee80..8605361 100644
--- a/base/javascript/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations4.json/converters-top-level--67aa452ed509/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations4.json/converters-top-level--67aa452ed509/TopLevel.js
index 9098e52..6dac0d3 100644
--- a/base/javascript/test/inputs/json/priority/combinations4.json/converters-top-level--67aa452ed509/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations4.json/converters-top-level--67aa452ed509/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations4.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations4.json/default/TopLevel.js
index 9098e52..6dac0d3 100644
--- a/base/javascript/test/inputs/json/priority/combinations4.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations4.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations4.json/raw-type-any--474b307c39db/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations4.json/raw-type-any--474b307c39db/TopLevel.js
index 84b4eb4..8eaeaa8 100644
--- a/base/javascript/test/inputs/json/priority/combinations4.json/raw-type-any--474b307c39db/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations4.json/raw-type-any--474b307c39db/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js b/head/javascript/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
index 60a61ff..2146b4e 100644
--- a/base/javascript/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/combined-enum.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/combined-enum.json/default/TopLevel.js
index 7db1140..9688d0a 100644
--- a/base/javascript/test/inputs/json/priority/combined-enum.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/combined-enum.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/direct-recursive.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/direct-recursive.json/default/TopLevel.js
index 25bdd46..f7c64d7 100644
--- a/base/javascript/test/inputs/json/priority/direct-recursive.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/direct-recursive.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/empty-enum.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/empty-enum.json/default/TopLevel.js
index 2805dbb..fc7d818 100644
--- a/base/javascript/test/inputs/json/priority/empty-enum.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/empty-enum.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/identifiers.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/identifiers.json/default/TopLevel.js
index 24aedef..e8bf98a 100644
--- a/base/javascript/test/inputs/json/priority/identifiers.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/identifiers.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.js
index 601b357..f901377 100644
--- a/base/javascript/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.js
index 9515706..42e24b8 100644
--- a/base/javascript/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/keywords.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/keywords.json/default/TopLevel.js
index 8fc75d9..e2d9ce0 100644
--- a/base/javascript/test/inputs/json/priority/keywords.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/keywords.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.js
index afd8b5b..6210480 100644
--- a/base/javascript/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/list.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/list.json/default/TopLevel.js
index 279b16f..2cbdd2e 100644
--- a/base/javascript/test/inputs/json/priority/list.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/list.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/name-style.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/name-style.json/default/TopLevel.js
index 1f13def..c65bbc6 100644
--- a/base/javascript/test/inputs/json/priority/name-style.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/name-style.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/nbl-stats.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/nbl-stats.json/default/TopLevel.js
index 6a9855b..8ba7b16 100644
--- a/base/javascript/test/inputs/json/priority/nbl-stats.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/nbl-stats.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/nested-objects.json/converters-all-objects--3a443babd1cb/TopLevel.js b/head/javascript/test/inputs/json/priority/nested-objects.json/converters-all-objects--3a443babd1cb/TopLevel.js
index d14ecfb..90ee03d 100644
--- a/base/javascript/test/inputs/json/priority/nested-objects.json/converters-all-objects--3a443babd1cb/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/nested-objects.json/converters-all-objects--3a443babd1cb/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/nested-objects.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/nested-objects.json/default/TopLevel.js
index d14ecfb..90ee03d 100644
--- a/base/javascript/test/inputs/json/priority/nested-objects.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/nested-objects.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/no-classes.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/no-classes.json/default/TopLevel.js
index 38e3295..6f70d45 100644
--- a/base/javascript/test/inputs/json/priority/no-classes.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/no-classes.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.js
index c52af80..fb1129f 100644
--- a/base/javascript/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/number-map.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/number-map.json/default/TopLevel.js
index f67e389..61cf3f7 100644
--- a/base/javascript/test/inputs/json/priority/number-map.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/number-map.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/omit-empty.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/omit-empty.json/default/TopLevel.js
index 43380a8..b409f95 100644
--- a/base/javascript/test/inputs/json/priority/omit-empty.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/omit-empty.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/optional-union.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/optional-union.json/default/TopLevel.js
index 2287ca4..a7755cf 100644
--- a/base/javascript/test/inputs/json/priority/optional-union.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/optional-union.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.js
index 555bab5..4c6d0d3 100644
--- a/base/javascript/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/php-validation.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/php-validation.json/default/TopLevel.js
index 6cdb09a..a5d7c6e 100644
--- a/base/javascript/test/inputs/json/priority/php-validation.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/php-validation.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/recursive.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/recursive.json/default/TopLevel.js
index ebdf80c..42d2ced 100644
--- a/base/javascript/test/inputs/json/priority/recursive.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/recursive.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.js
index 1ecd528..09ba027 100644
--- a/base/javascript/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.js
index f541287..7392567 100644
--- a/base/javascript/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/unions.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/unions.json/default/TopLevel.js
index 5686cad..87c9c8f 100644
--- a/base/javascript/test/inputs/json/priority/unions.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/unions.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/url.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/url.json/default/TopLevel.js
index eddd54c..6ac4f49 100644
--- a/base/javascript/test/inputs/json/priority/url.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/url.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/priority/uuids.json/default/TopLevel.js b/head/javascript/test/inputs/json/priority/uuids.json/default/TopLevel.js
index a8baed6..9850f5a 100644
--- a/base/javascript/test/inputs/json/priority/uuids.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/priority/uuids.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.js
index 22fb238..93b54f7 100644
--- a/base/javascript/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/copy-with-property.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/copy-with-property.json/default/TopLevel.js
index 744997a..3c658f1 100644
--- a/base/javascript/test/inputs/json/samples/copy-with-property.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/copy-with-property.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/getting-started.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/getting-started.json/default/TopLevel.js
index 6286f9a..f3e645b 100644
--- a/base/javascript/test/inputs/json/samples/getting-started.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/getting-started.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/github-events.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/github-events.json/default/TopLevel.js
index 8cdad8e..ea16d1c 100644
--- a/base/javascript/test/inputs/json/samples/github-events.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/github-events.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.js
index 482996b..f9191aa 100644
--- a/base/javascript/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/null-safe.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/null-safe.json/default/TopLevel.js
index 561f080..5530bdb 100644
--- a/base/javascript/test/inputs/json/samples/null-safe.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/null-safe.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.js
index a887bec..66cdbee 100644
--- a/base/javascript/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/pokedex.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/pokedex.json/default/TopLevel.js
index 51d9840..4893c29 100644
--- a/base/javascript/test/inputs/json/samples/pokedex.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/pokedex.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/reddit.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/reddit.json/default/TopLevel.js
index 1ebb38a..df366d3 100644
--- a/base/javascript/test/inputs/json/samples/reddit.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/reddit.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/simple-object.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/simple-object.json/default/TopLevel.js
index 6be8558..b19025d 100644
--- a/base/javascript/test/inputs/json/samples/simple-object.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/simple-object.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/spotify-album.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/spotify-album.json/default/TopLevel.js
index 86817b6..848110d 100644
--- a/base/javascript/test/inputs/json/samples/spotify-album.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/spotify-album.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.js
index d23e2d7..eb82c03 100644
--- a/base/javascript/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/javascript/test/inputs/json/samples/us-senators.json/default/TopLevel.js b/head/javascript/test/inputs/json/samples/us-senators.json/default/TopLevel.js
index dc3a543..5460faa 100644
--- a/base/javascript/test/inputs/json/samples/us-senators.json/default/TopLevel.js
+++ b/head/javascript/test/inputs/json/samples/us-senators.json/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-elm/test/inputs/schema/accessors.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/accessors.schema/default/QuickType.elm
index d690b11..7123dc7 100644
--- a/base/schema-elm/test/inputs/schema/accessors.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/accessors.schema/default/QuickType.elm
@@ -99,6 +99,14 @@ encodeUnion x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/all-of-additional-properties-false.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/all-of-additional-properties-false.schema/default/QuickType.elm
index cd4cfed..13cfb63 100644
--- a/base/schema-elm/test/inputs/schema/all-of-additional-properties-false.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/all-of-additional-properties-false.schema/default/QuickType.elm
@@ -102,6 +102,14 @@ encodeType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/any.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/any.schema/default/QuickType.elm
index 3f06795..5bc2880 100644
--- a/base/schema-elm/test/inputs/schema/any.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/any.schema/default/QuickType.elm
@@ -48,11 +48,19 @@ encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
         [ ("foo", identity x.foo)
-        , ("values", Jenc.dict identity identity x.values)
+        , ("values", makeDictEncoder identity identity x.values)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/bool-string.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/bool-string.schema/default/QuickType.elm
index 207ccc3..53902f0 100644
--- a/base/schema-elm/test/inputs/schema/bool-string.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/bool-string.schema/default/QuickType.elm
@@ -85,6 +85,14 @@ encodeUnionWithBool x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/boolean-subschema.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/boolean-subschema.schema/default/QuickType.elm
index 924cb6d..c5d469c 100644
--- a/base/schema-elm/test/inputs/schema/boolean-subschema.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/boolean-subschema.schema/default/QuickType.elm
@@ -59,6 +59,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/camelCase.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/camelCase.schema/default/QuickType.elm
index c2b8245..33b7c8b 100644
--- a/base/schema-elm/test/inputs/schema/camelCase.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/camelCase.schema/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/class-map-union.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/class-map-union.schema/default/QuickType.elm
index a4df8a7..6bccbcd 100644
--- a/base/schema-elm/test/inputs/schema/class-map-union.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/class-map-union.schema/default/QuickType.elm
@@ -57,7 +57,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("union", makeNullableEncoder (Jenc.dict identity encodeUnionValue) x.union)
+        [ ("union", makeNullableEncoder (makeDictEncoder identity encodeUnionValue) x.union)
         ]
 
 unionValue : Jdec.Decoder UnionValue
@@ -89,6 +89,14 @@ encodeUnionClass x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/class-with-additional.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/class-with-additional.schema/default/QuickType.elm
index 43a6887..bedfb02 100644
--- a/base/schema-elm/test/inputs/schema/class-with-additional.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/class-with-additional.schema/default/QuickType.elm
@@ -50,7 +50,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("map", makeNullableEncoder (Jenc.dict identity encodeMap) x.map)
+        [ ("map", makeNullableEncoder (makeDictEncoder identity encodeMap) x.map)
         ]
 
 map : Jdec.Decoder Map
@@ -67,6 +67,14 @@ encodeMap x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/QuickType.elm
index 0069ec3..14aa56a 100644
--- a/base/schema-elm/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/QuickType.elm
@@ -78,6 +78,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/comment-injection-enum.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/comment-injection-enum.schema/default/QuickType.elm
index 3b8ab49..071b3a2 100644
--- a/base/schema-elm/test/inputs/schema/comment-injection-enum.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/comment-injection-enum.schema/default/QuickType.elm
@@ -84,6 +84,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/comment-injection-nested-comment.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/comment-injection-nested-comment.schema/default/QuickType.elm
index fd09215..8856fcd 100644
--- a/base/schema-elm/test/inputs/schema/comment-injection-nested-comment.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/comment-injection-nested-comment.schema/default/QuickType.elm
@@ -61,6 +61,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/comment-injection.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/comment-injection.schema/default/QuickType.elm
index fef0bef..d8c9138 100644
--- a/base/schema-elm/test/inputs/schema/comment-injection.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/comment-injection.schema/default/QuickType.elm
@@ -95,6 +95,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/const-non-string.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/const-non-string.schema/default/QuickType.elm
index 9cc5ace..1d919a2 100644
--- a/base/schema-elm/test/inputs/schema/const-non-string.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/const-non-string.schema/default/QuickType.elm
@@ -79,6 +79,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/constructor.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/constructor.schema/default/QuickType.elm
index 773cf57..675a535 100644
--- a/base/schema-elm/test/inputs/schema/constructor.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/constructor.schema/default/QuickType.elm
@@ -82,6 +82,14 @@ encodeConstructor x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/cut-enum.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/cut-enum.schema/default/QuickType.elm
index 8cb921a..d73eb62 100644
--- a/base/schema-elm/test/inputs/schema/cut-enum.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/cut-enum.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/date-time-or-string.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/date-time-or-string.schema/default/QuickType.elm
index 4ff9005..7da97de 100644
--- a/base/schema-elm/test/inputs/schema/date-time-or-string.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/date-time-or-string.schema/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/date-time.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/date-time.schema/default/QuickType.elm
index 765b331..dd71d3d 100644
--- a/base/schema-elm/test/inputs/schema/date-time.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/date-time.schema/default/QuickType.elm
@@ -79,6 +79,14 @@ encodeComplexUnionArray x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/default-value.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/default-value.schema/default/QuickType.elm
index 38cdf21..ac2be0d 100644
--- a/base/schema-elm/test/inputs/schema/default-value.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/default-value.schema/default/QuickType.elm
@@ -52,6 +52,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/description-with-double-quotes.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/description-with-double-quotes.schema/default/QuickType.elm
index 630dc88..0b2e521 100644
--- a/base/schema-elm/test/inputs/schema/description-with-double-quotes.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/description-with-double-quotes.schema/default/QuickType.elm
@@ -52,6 +52,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/description.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/description.schema/default/QuickType.elm
index 602fd98..a734722 100644
--- a/base/schema-elm/test/inputs/schema/description.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/description.schema/default/QuickType.elm
@@ -151,6 +151,14 @@ encodeUnion x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/direct-union.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/direct-union.schema/default/QuickType.elm
index b8f0f54..9a4c1bc 100644
--- a/base/schema-elm/test/inputs/schema/direct-union.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/direct-union.schema/default/QuickType.elm
@@ -61,7 +61,7 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("stuff", Jenc.dict identity encodeThing x.stuff)
+        [ ("stuff", makeDictEncoder identity encodeThing x.stuff)
         ]
 
 thing : Jdec.Decoder Thing
@@ -97,10 +97,18 @@ encodeAnything x = case x of
     NullInAnything -> Jenc.null
     StringInAnything y -> Jenc.string y
     DoubleInAnything y -> Jenc.float y
-    AnythingMapInAnything y -> Jenc.dict identity identity y
+    AnythingMapInAnything y -> makeDictEncoder identity identity y
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/empty-object.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/empty-object.schema/default/QuickType.elm
index e1250b9..d90e676 100644
--- a/base/schema-elm/test/inputs/schema/empty-object.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/empty-object.schema/default/QuickType.elm
@@ -36,10 +36,18 @@ quickType : Jdec.Decoder QuickType
 quickType = Jdec.dict Jdec.value
 
 quickTypeToString : QuickType -> String
-quickTypeToString r = Jenc.encode 0 (Jenc.dict identity identity r)
+quickTypeToString r = Jenc.encode 0 (makeDictEncoder identity identity r)
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/enum-large.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/enum-large.schema/default/QuickType.elm
index 26b1613..f87ed8c 100644
--- a/base/schema-elm/test/inputs/schema/enum-large.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/enum-large.schema/default/QuickType.elm
@@ -150,6 +150,14 @@ encodePriority x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/enum-with-null.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/enum-with-null.schema/default/QuickType.elm
index e7178bc..27c2bab 100644
--- a/base/schema-elm/test/inputs/schema/enum-with-null.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/enum-with-null.schema/default/QuickType.elm
@@ -70,6 +70,14 @@ encodeEnum x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/enum-with-values.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/enum-with-values.schema/default/QuickType.elm
index 1f2fa88..e954b50 100644
--- a/base/schema-elm/test/inputs/schema/enum-with-values.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/enum-with-values.schema/default/QuickType.elm
@@ -85,6 +85,14 @@ encodeWeekdays x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/enum.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/enum.schema/default/QuickType.elm
index 230702c..02a8ac3 100644
--- a/base/schema-elm/test/inputs/schema/enum.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/enum.schema/default/QuickType.elm
@@ -148,6 +148,14 @@ encodeLvc x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/fractional-bounds.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/fractional-bounds.schema/default/QuickType.elm
index a7cbef2..41e1d9b 100644
--- a/base/schema-elm/test/inputs/schema/fractional-bounds.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/fractional-bounds.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/go-schema-pattern-properties.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/go-schema-pattern-properties.schema/default/QuickType.elm
index dd84bf9..1fb6989 100644
--- a/base/schema-elm/test/inputs/schema/go-schema-pattern-properties.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/go-schema-pattern-properties.schema/default/QuickType.elm
@@ -45,11 +45,19 @@ quickType =
 encodeQuickType : QuickType -> Jenc.Value
 encodeQuickType x =
     Jenc.object
-        [ ("map", Jenc.dict identity Jenc.int x.map)
+        [ ("map", makeDictEncoder identity Jenc.int x.map)
         ]
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/haskell-enum-forbidden.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/haskell-enum-forbidden.schema/default/QuickType.elm
index 0eb2189..cf2bffa 100644
--- a/base/schema-elm/test/inputs/schema/haskell-enum-forbidden.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/haskell-enum-forbidden.schema/default/QuickType.elm
@@ -70,6 +70,14 @@ encodeHealth x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/id-no-address.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/id-no-address.schema/default/QuickType.elm
index 4ebccfc..f7b6e46 100644
--- a/base/schema-elm/test/inputs/schema/id-no-address.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/id-no-address.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/id-root.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/id-root.schema/default/QuickType.elm
index f2f21f1..28ec93b 100644
--- a/base/schema-elm/test/inputs/schema/id-root.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/id-root.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/ie-suffix-singularization.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/ie-suffix-singularization.schema/default/QuickType.elm
index a7152fd..95a8d3e 100644
--- a/base/schema-elm/test/inputs/schema/ie-suffix-singularization.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/ie-suffix-singularization.schema/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeCookie x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/implicit-all-of.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/implicit-all-of.schema/default/QuickType.elm
index 4c1d2d2..31ec78f 100644
--- a/base/schema-elm/test/inputs/schema/implicit-all-of.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/implicit-all-of.schema/default/QuickType.elm
@@ -56,6 +56,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/implicit-class-array-union.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/implicit-class-array-union.schema/default/QuickType.elm
index 15f7ff7..b811311 100644
--- a/base/schema-elm/test/inputs/schema/implicit-class-array-union.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/implicit-class-array-union.schema/default/QuickType.elm
@@ -98,6 +98,14 @@ encodeFooClass x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/implicit-one-of.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/implicit-one-of.schema/default/QuickType.elm
index 85a6f04..30da46d 100644
--- a/base/schema-elm/test/inputs/schema/implicit-one-of.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/implicit-one-of.schema/default/QuickType.elm
@@ -56,6 +56,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/integer-before-number.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/integer-before-number.schema/default/QuickType.elm
index 0666482..0ac07a0 100644
--- a/base/schema-elm/test/inputs/schema/integer-before-number.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/integer-before-number.schema/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/integer-float-union.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/integer-float-union.schema/default/QuickType.elm
index 26971ae..8af9ba5 100644
--- a/base/schema-elm/test/inputs/schema/integer-float-union.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/integer-float-union.schema/default/QuickType.elm
@@ -67,6 +67,14 @@ encodeNumber x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/integer-string.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/integer-string.schema/default/QuickType.elm
index cf0782f..b3fbe73 100644
--- a/base/schema-elm/test/inputs/schema/integer-string.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/integer-string.schema/default/QuickType.elm
@@ -85,6 +85,14 @@ encodeUnionWithInt x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/integer-type.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/integer-type.schema/default/QuickType.elm
index 875add6..b00bff8 100644
--- a/base/schema-elm/test/inputs/schema/integer-type.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/integer-type.schema/default/QuickType.elm
@@ -74,6 +74,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/intersection-nested.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/intersection-nested.schema/default/QuickType.elm
index fc48a6f..b2afcfc 100644
--- a/base/schema-elm/test/inputs/schema/intersection-nested.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/intersection-nested.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/intersection.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/intersection.schema/default/QuickType.elm
index 75effe7..100c17e 100644
--- a/base/schema-elm/test/inputs/schema/intersection.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/intersection.schema/default/QuickType.elm
@@ -69,6 +69,14 @@ encodeIntersection x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/issue2680-top-level-array.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/issue2680-top-level-array.schema/default/QuickType.elm
index 42abf22..237b937 100644
--- a/base/schema-elm/test/inputs/schema/issue2680-top-level-array.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/issue2680-top-level-array.schema/default/QuickType.elm
@@ -40,6 +40,14 @@ quickTypeToString r = Jenc.encode 0 (Jenc.list Jenc.int r)
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/keyword-enum.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/keyword-enum.schema/default/QuickType.elm
index 40c72a7..f327b4c 100644
--- a/base/schema-elm/test/inputs/schema/keyword-enum.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/keyword-enum.schema/default/QuickType.elm
@@ -1081,6 +1081,14 @@ encodeEnumEnum x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/keyword-unions.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/keyword-unions.schema/default/QuickType.elm
index 1421eff..68cbcdf 100644
--- a/base/schema-elm/test/inputs/schema/keyword-unions.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/keyword-unions.schema/default/QuickType.elm
@@ -11880,6 +11880,14 @@ encodeYield x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/light.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/light.schema/default/QuickType.elm
index 32dda07..1bc4978 100644
--- a/base/schema-elm/test/inputs/schema/light.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/light.schema/default/QuickType.elm
@@ -72,6 +72,14 @@ encodeLightParams x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/min-max-items.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/min-max-items.schema/default/QuickType.elm
index c4527ed..728ed7e 100644
--- a/base/schema-elm/test/inputs/schema/min-max-items.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/min-max-items.schema/default/QuickType.elm
@@ -79,6 +79,14 @@ encodeUnionItem x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/minmax-integer.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/minmax-integer.schema/default/QuickType.elm
index dd2833c..012ba05 100644
--- a/base/schema-elm/test/inputs/schema/minmax-integer.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/minmax-integer.schema/default/QuickType.elm
@@ -71,6 +71,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/minmax.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/minmax.schema/default/QuickType.elm
index aa39232..aef34c6 100644
--- a/base/schema-elm/test/inputs/schema/minmax.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/minmax.schema/default/QuickType.elm
@@ -71,6 +71,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/minmaxlength.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/minmaxlength.schema/default/QuickType.elm
index 4401e31..df3f147 100644
--- a/base/schema-elm/test/inputs/schema/minmaxlength.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/minmaxlength.schema/default/QuickType.elm
@@ -88,6 +88,14 @@ encodeInUnion x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/multi-type-enum.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/multi-type-enum.schema/default/QuickType.elm
index b3ac965..a82acdf 100644
--- a/base/schema-elm/test/inputs/schema/multi-type-enum.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/multi-type-enum.schema/default/QuickType.elm
@@ -96,6 +96,14 @@ encodeFooEnum x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/nested-intersection-union.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/nested-intersection-union.schema/default/QuickType.elm
index c50d97e..8568d59 100644
--- a/base/schema-elm/test/inputs/schema/nested-intersection-union.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/nested-intersection-union.schema/default/QuickType.elm
@@ -75,6 +75,14 @@ encodeItem x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/non-standard-ref.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/non-standard-ref.schema/default/QuickType.elm
index 769edb6..c630700 100644
--- a/base/schema-elm/test/inputs/schema/non-standard-ref.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/non-standard-ref.schema/default/QuickType.elm
@@ -56,6 +56,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/nullable-optional-one-of.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/nullable-optional-one-of.schema/default/QuickType.elm
index 2d0ff8a..7a1baa1 100644
--- a/base/schema-elm/test/inputs/schema/nullable-optional-one-of.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/nullable-optional-one-of.schema/default/QuickType.elm
@@ -73,6 +73,14 @@ encodeKind x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/object-type-required.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/object-type-required.schema/default/QuickType.elm
index 787c8f3..b38db4f 100644
--- a/base/schema-elm/test/inputs/schema/object-type-required.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/object-type-required.schema/default/QuickType.elm
@@ -71,6 +71,14 @@ encodeEmpty x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/optional-any.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/optional-any.schema/default/QuickType.elm
index c3722f8..2540151 100644
--- a/base/schema-elm/test/inputs/schema/optional-any.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/optional-any.schema/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/optional-const-ref.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/optional-const-ref.schema/default/QuickType.elm
index c78f4ec..cf7d40a 100644
--- a/base/schema-elm/test/inputs/schema/optional-const-ref.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/optional-const-ref.schema/default/QuickType.elm
@@ -87,6 +87,14 @@ encodeCoordinate x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/optional-constraints.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/optional-constraints.schema/default/QuickType.elm
index 8e66d04..0396b09 100644
--- a/base/schema-elm/test/inputs/schema/optional-constraints.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/optional-constraints.schema/default/QuickType.elm
@@ -62,6 +62,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/optional-date-time.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/optional-date-time.schema/default/QuickType.elm
index 94c7f7c..d5b3d33 100644
--- a/base/schema-elm/test/inputs/schema/optional-date-time.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/optional-date-time.schema/default/QuickType.elm
@@ -65,6 +65,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/optional-enum.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/optional-enum.schema/default/QuickType.elm
index b3b1f6b..187f1b1 100644
--- a/base/schema-elm/test/inputs/schema/optional-enum.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/optional-enum.schema/default/QuickType.elm
@@ -73,6 +73,14 @@ encodeShortcut x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/optional-property.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/optional-property.schema/default/QuickType.elm
index 50fbaff..d99e0fd 100644
--- a/base/schema-elm/test/inputs/schema/optional-property.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/optional-property.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/pattern.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/pattern.schema/default/QuickType.elm
index 466a576..11ee4d2 100644
--- a/base/schema-elm/test/inputs/schema/pattern.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/pattern.schema/default/QuickType.elm
@@ -75,6 +75,14 @@ encodeRegExp x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/prefix-items.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/prefix-items.schema/default/QuickType.elm
index 22fa3ce..3864d27 100644
--- a/base/schema-elm/test/inputs/schema/prefix-items.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/prefix-items.schema/default/QuickType.elm
@@ -70,6 +70,14 @@ encodeOpen x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/ref-id-files.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/ref-id-files.schema/default/QuickType.elm
index 8cb921a..d73eb62 100644
--- a/base/schema-elm/test/inputs/schema/ref-id-files.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/ref-id-files.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/renaming-bug.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/renaming-bug.schema/default/QuickType.elm
index d9d4357..02d10fe 100644
--- a/base/schema-elm/test/inputs/schema/renaming-bug.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/renaming-bug.schema/default/QuickType.elm
@@ -385,6 +385,14 @@ encodeName x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/required-draft3.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/required-draft3.schema/default/QuickType.elm
index 76aed56..699c17a 100644
--- a/base/schema-elm/test/inputs/schema/required-draft3.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/required-draft3.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/required-non-properties.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/required-non-properties.schema/default/QuickType.elm
index 3a6a8df..3d1350d 100644
--- a/base/schema-elm/test/inputs/schema/required-non-properties.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/required-non-properties.schema/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/required.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/required.schema/default/QuickType.elm
index 76aed56..699c17a 100644
--- a/base/schema-elm/test/inputs/schema/required.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/required.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/schema-constraints.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/schema-constraints.schema/default/QuickType.elm
index 288a918..62a6f0f 100644
--- a/base/schema-elm/test/inputs/schema/schema-constraints.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/schema-constraints.schema/default/QuickType.elm
@@ -53,6 +53,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/strict-optional.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/strict-optional.schema/default/QuickType.elm
index 31fd593..804c6e1 100644
--- a/base/schema-elm/test/inputs/schema/strict-optional.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/strict-optional.schema/default/QuickType.elm
@@ -50,6 +50,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/top-level-array.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/top-level-array.schema/default/QuickType.elm
index 7b8fe5e..b105adb 100644
--- a/base/schema-elm/test/inputs/schema/top-level-array.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/top-level-array.schema/default/QuickType.elm
@@ -59,6 +59,14 @@ encodeTextClassificationOutputElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/top-level-enum.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/top-level-enum.schema/default/QuickType.elm
index 4ad94f6..7811b7f 100644
--- a/base/schema-elm/test/inputs/schema/top-level-enum.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/top-level-enum.schema/default/QuickType.elm
@@ -57,6 +57,14 @@ encodeQuickType x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/top-level-primitive-array.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/top-level-primitive-array.schema/default/QuickType.elm
index 00d463c..f86d26c 100644
--- a/base/schema-elm/test/inputs/schema/top-level-primitive-array.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/top-level-primitive-array.schema/default/QuickType.elm
@@ -40,6 +40,14 @@ quickTypeToString r = Jenc.encode 0 (Jenc.list Jenc.string r)
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/top-level-primitive.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/top-level-primitive.schema/default/QuickType.elm
index cf8eb77..fecebbd 100644
--- a/base/schema-elm/test/inputs/schema/top-level-primitive.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/top-level-primitive.schema/default/QuickType.elm
@@ -40,6 +40,14 @@ quickTypeToString r = Jenc.encode 0 (Jenc.float r)
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/tuple.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/tuple.schema/default/QuickType.elm
index e43ca5d..d611c09 100644
--- a/base/schema-elm/test/inputs/schema/tuple.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/tuple.schema/default/QuickType.elm
@@ -67,6 +67,14 @@ encodeTuple x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/unevaluated-properties.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/unevaluated-properties.schema/default/QuickType.elm
index b34a1be..a9d0187 100644
--- a/base/schema-elm/test/inputs/schema/unevaluated-properties.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/unevaluated-properties.schema/default/QuickType.elm
@@ -88,7 +88,7 @@ encodeConfig x =
     Jenc.object
         [ ("closed", makeNullableEncoder encodeClosed x.closed)
         , ("name", makeNullableEncoder Jenc.string x.name)
-        , ("settings", makeNullableEncoder (Jenc.dict identity (Jenc.list encodeItem)) x.settings)
+        , ("settings", makeNullableEncoder (makeDictEncoder identity (Jenc.list encodeItem)) x.settings)
         ]
 
 closed : Jdec.Decoder Closed
@@ -138,6 +138,14 @@ encodeItem x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/unicode-codepoint-length.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/unicode-codepoint-length.schema/default/QuickType.elm
index 1f16055..7e63432 100644
--- a/base/schema-elm/test/inputs/schema/unicode-codepoint-length.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/unicode-codepoint-length.schema/default/QuickType.elm
@@ -56,6 +56,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/union-int-double.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/union-int-double.schema/default/QuickType.elm
index 485a17a..b965a94 100644
--- a/base/schema-elm/test/inputs/schema/union-int-double.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/union-int-double.schema/default/QuickType.elm
@@ -70,6 +70,14 @@ encodeValue x = case x of
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/union.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/union.schema/default/QuickType.elm
index fe9732b..cfff165 100644
--- a/base/schema-elm/test/inputs/schema/union.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/union.schema/default/QuickType.elm
@@ -62,6 +62,14 @@ encodeQuickTypeElement x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-elm/test/inputs/schema/uuid.schema/default/QuickType.elm b/head/schema-elm/test/inputs/schema/uuid.schema/default/QuickType.elm
index 361c827..ffe45c1 100644
--- a/base/schema-elm/test/inputs/schema/uuid.schema/default/QuickType.elm
+++ b/head/schema-elm/test/inputs/schema/uuid.schema/default/QuickType.elm
@@ -65,6 +65,14 @@ encodeQuickType x =
 
 --- encoder helpers
 
+makeDictEncoder : (String -> String) -> (a -> Jenc.Value) -> Dict String a -> Jenc.Value
+makeDictEncoder f m r =
+    r
+        |> Dict.toList
+        |> List.map (\( x, y ) -> Jenc.encode 0 (Jenc.string (f x)) ++ ":" ++ Jenc.encode 0 (m y))
+        |> String.join ","
+        |> (\str -> Jdec.decodeString Jdec.value ("{" ++ str ++ "}") |> Result.withDefault Jenc.null)
+
 makeNullableEncoder : (a -> Jenc.Value) -> Maybe a -> Jenc.Value
 makeNullableEncoder f m =
     case m of
diff --git a/base/schema-flow/test/inputs/schema/accessors.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/accessors.schema/default/TopLevel.js
index 782c410..a5164dd 100644
--- a/base/schema-flow/test/inputs/schema/accessors.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/accessors.schema/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.js
index 30facbe..5da9167 100644
--- a/base/schema-flow/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.js
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/any.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/any.schema/default/TopLevel.js
index 9b41bf2..7998331 100644
--- a/base/schema-flow/test/inputs/schema/any.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/any.schema/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/bool-string.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/bool-string.schema/default/TopLevel.js
index de3bb1e..eef97f8 100644
--- a/base/schema-flow/test/inputs/schema/bool-string.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/bool-string.schema/default/TopLevel.js
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/boolean-subschema.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/boolean-subschema.schema/default/TopLevel.js
index 0ab5f8f..b178219 100644
--- a/base/schema-flow/test/inputs/schema/boolean-subschema.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/boolean-subschema.schema/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/camelCase.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/camelCase.schema/default/TopLevel.js
index e050014..a08a6ca 100644
--- a/base/schema-flow/test/inputs/schema/camelCase.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/camelCase.schema/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/class-map-union.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/class-map-union.schema/default/TopLevel.js
index f8747ce..4cb3b4a 100644
--- a/base/schema-flow/test/inputs/schema/class-map-union.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/class-map-union.schema/default/TopLevel.js
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/class-with-additional.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/class-with-additional.schema/default/TopLevel.js
index 319b5d0..7987a08 100644
--- a/base/schema-flow/test/inputs/schema/class-with-additional.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/class-with-additional.schema/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.js
index 03492d1..3b225fc 100644
--- a/base/schema-flow/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.js
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -133,7 +133,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.js
index 7267743..1b6ba99 100644
--- a/base/schema-flow/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.js
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -139,7 +139,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.js
index 3883ea0..57036a2 100644
--- a/base/schema-flow/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.js
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/comment-injection.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/comment-injection.schema/default/TopLevel.js
index a6c6ee5..6de87d7 100644
--- a/base/schema-flow/test/inputs/schema/comment-injection.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/comment-injection.schema/default/TopLevel.js
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/const-non-string.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/const-non-string.schema/default/TopLevel.js
index bfdefce..729be21 100644
--- a/base/schema-flow/test/inputs/schema/const-non-string.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/const-non-string.schema/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/constructor.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/constructor.schema/default/TopLevel.js
index 461857e..6544d2d 100644
--- a/base/schema-flow/test/inputs/schema/constructor.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/constructor.schema/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/cut-enum.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/cut-enum.schema/default/TopLevel.js
index fd3804b..7c4a34e 100644
--- a/base/schema-flow/test/inputs/schema/cut-enum.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/cut-enum.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/date-time-or-string.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/date-time-or-string.schema/default/TopLevel.js
index 159b882..5f936fb 100644
--- a/base/schema-flow/test/inputs/schema/date-time-or-string.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/date-time-or-string.schema/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/date-time.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/date-time.schema/default/TopLevel.js
index 5679fa7..2c0853a 100644
--- a/base/schema-flow/test/inputs/schema/date-time.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/date-time.schema/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/default-value.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/default-value.schema/default/TopLevel.js
index 9529bb0..05ca456 100644
--- a/base/schema-flow/test/inputs/schema/default-value.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/default-value.schema/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.js
index 460c470..dd88f13 100644
--- a/base/schema-flow/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/description.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/description.schema/default/TopLevel.js
index 8a80a17..96fb2bb 100644
--- a/base/schema-flow/test/inputs/schema/description.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/description.schema/default/TopLevel.js
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -157,7 +157,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/direct-union.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/direct-union.schema/default/TopLevel.js
index 953338d..230fa76 100644
--- a/base/schema-flow/test/inputs/schema/direct-union.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/direct-union.schema/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/empty-object.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/empty-object.schema/default/TopLevel.js
index 3b57852..4c905fd 100644
--- a/base/schema-flow/test/inputs/schema/empty-object.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/empty-object.schema/default/TopLevel.js
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/enum-large.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/enum-large.schema/default/TopLevel.js
index da2bc16..d5cbc15 100644
--- a/base/schema-flow/test/inputs/schema/enum-large.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/enum-large.schema/default/TopLevel.js
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/enum-with-null.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/enum-with-null.schema/default/TopLevel.js
index 6d8d098..5a829ad 100644
--- a/base/schema-flow/test/inputs/schema/enum-with-null.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/enum-with-null.schema/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/enum-with-values.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/enum-with-values.schema/default/TopLevel.js
index b984eb2..9f9027a 100644
--- a/base/schema-flow/test/inputs/schema/enum-with-values.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/enum-with-values.schema/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/enum.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/enum.schema/default/TopLevel.js
index 6fe5b6c..f891810 100644
--- a/base/schema-flow/test/inputs/schema/enum.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/enum.schema/default/TopLevel.js
@@ -129,7 +129,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/fractional-bounds.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/fractional-bounds.schema/default/TopLevel.js
index 022ded2..4ee22ce 100644
--- a/base/schema-flow/test/inputs/schema/fractional-bounds.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/fractional-bounds.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.js
index 35ad8a1..109b999 100644
--- a/base/schema-flow/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.js
index 4142df5..e279ded 100644
--- a/base/schema-flow/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/id-no-address.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/id-no-address.schema/default/TopLevel.js
index 94dd602..67f936a 100644
--- a/base/schema-flow/test/inputs/schema/id-no-address.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/id-no-address.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/id-root.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/id-root.schema/default/TopLevel.js
index 0da7b3c..5fc0b1b 100644
--- a/base/schema-flow/test/inputs/schema/id-root.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/id-root.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.js
index 282e724..a3d1c8c 100644
--- a/base/schema-flow/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/implicit-all-of.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/implicit-all-of.schema/default/TopLevel.js
index 3e5b1af..5142321 100644
--- a/base/schema-flow/test/inputs/schema/implicit-all-of.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/implicit-all-of.schema/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.js
index 7c09067..675022a 100644
--- a/base/schema-flow/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/implicit-one-of.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/implicit-one-of.schema/default/TopLevel.js
index 028af63..ce7c5c9 100644
--- a/base/schema-flow/test/inputs/schema/implicit-one-of.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/implicit-one-of.schema/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/integer-before-number.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/integer-before-number.schema/default/TopLevel.js
index c7d038a..7a0af2d 100644
--- a/base/schema-flow/test/inputs/schema/integer-before-number.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/integer-before-number.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/integer-float-union.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/integer-float-union.schema/default/TopLevel.js
index c434c99..4d848c3 100644
--- a/base/schema-flow/test/inputs/schema/integer-float-union.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/integer-float-union.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/integer-string.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/integer-string.schema/default/TopLevel.js
index ef28a5e..1466db9 100644
--- a/base/schema-flow/test/inputs/schema/integer-string.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/integer-string.schema/default/TopLevel.js
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/integer-type.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/integer-type.schema/default/TopLevel.js
index 51b83f3..fe20f84 100644
--- a/base/schema-flow/test/inputs/schema/integer-type.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/integer-type.schema/default/TopLevel.js
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/intersection-nested.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/intersection-nested.schema/default/TopLevel.js
index 58885fc..41e39c5 100644
--- a/base/schema-flow/test/inputs/schema/intersection-nested.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/intersection-nested.schema/default/TopLevel.js
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/intersection.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/intersection.schema/default/TopLevel.js
index 7ff9370..385add2 100644
--- a/base/schema-flow/test/inputs/schema/intersection.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/intersection.schema/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.js
index 57ef2c0..a894724 100644
--- a/base/schema-flow/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.js
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/keyword-enum.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
index 055ed86..4d2170a 100644
--- a/base/schema-flow/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
@@ -449,7 +449,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -460,7 +460,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/keyword-unions.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
index c364e96..86d9598 100644
--- a/base/schema-flow/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
@@ -2136,7 +2136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -2147,7 +2147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/light.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/light.schema/default/TopLevel.js
index 87eb58e..a9f72b4 100644
--- a/base/schema-flow/test/inputs/schema/light.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/light.schema/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/list.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/list.schema/default/TopLevel.js
index 17c0e10..b6fd5dc 100644
--- a/base/schema-flow/test/inputs/schema/list.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/list.schema/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/min-max-items.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/min-max-items.schema/default/TopLevel.js
index 669266c..d76e536 100644
--- a/base/schema-flow/test/inputs/schema/min-max-items.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/min-max-items.schema/default/TopLevel.js
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/minmax-integer.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/minmax-integer.schema/default/TopLevel.js
index 60be51d..f9bfe28 100644
--- a/base/schema-flow/test/inputs/schema/minmax-integer.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/minmax-integer.schema/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/minmax.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/minmax.schema/default/TopLevel.js
index d58225c..544f02e 100644
--- a/base/schema-flow/test/inputs/schema/minmax.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/minmax.schema/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/minmaxlength.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/minmaxlength.schema/default/TopLevel.js
index bd4537b..f6ce594 100644
--- a/base/schema-flow/test/inputs/schema/minmaxlength.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/minmaxlength.schema/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/multi-type-enum.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/multi-type-enum.schema/default/TopLevel.js
index 61a8238..dcac16a 100644
--- a/base/schema-flow/test/inputs/schema/multi-type-enum.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/multi-type-enum.schema/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/mutually-recursive.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/mutually-recursive.schema/default/TopLevel.js
index cbf3645..cd37458 100644
--- a/base/schema-flow/test/inputs/schema/mutually-recursive.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/mutually-recursive.schema/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.js
index 11caa97..9944441 100644
--- a/base/schema-flow/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/non-standard-ref.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/non-standard-ref.schema/default/TopLevel.js
index 63ee252..7c3fec8 100644
--- a/base/schema-flow/test/inputs/schema/non-standard-ref.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/non-standard-ref.schema/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.js
index b682aea..267dd99 100644
--- a/base/schema-flow/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/object-type-required.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/object-type-required.schema/default/TopLevel.js
index 695aabc..ed1bd94 100644
--- a/base/schema-flow/test/inputs/schema/object-type-required.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/object-type-required.schema/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/optional-any.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/optional-any.schema/default/TopLevel.js
index e3ef54d..69b48fe 100644
--- a/base/schema-flow/test/inputs/schema/optional-any.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/optional-any.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/optional-const-ref.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/optional-const-ref.schema/default/TopLevel.js
index c6e94b4..334c735 100644
--- a/base/schema-flow/test/inputs/schema/optional-const-ref.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/optional-const-ref.schema/default/TopLevel.js
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -129,7 +129,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/optional-constraints.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/optional-constraints.schema/default/TopLevel.js
index 3afc5fb..8c3fb18 100644
--- a/base/schema-flow/test/inputs/schema/optional-constraints.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/optional-constraints.schema/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/optional-date-time.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/optional-date-time.schema/default/TopLevel.js
index 5c5a63e..c5b4f92 100644
--- a/base/schema-flow/test/inputs/schema/optional-date-time.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/optional-date-time.schema/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/optional-enum.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/optional-enum.schema/default/TopLevel.js
index 5708ba1..75acb19 100644
--- a/base/schema-flow/test/inputs/schema/optional-enum.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/optional-enum.schema/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/optional-property.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/optional-property.schema/default/TopLevel.js
index 9e8c173..c4e3d71 100644
--- a/base/schema-flow/test/inputs/schema/optional-property.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/optional-property.schema/default/TopLevel.js
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/pattern.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/pattern.schema/default/TopLevel.js
index 7259f33..ba6097d 100644
--- a/base/schema-flow/test/inputs/schema/pattern.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/pattern.schema/default/TopLevel.js
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/postman-collection.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/postman-collection.schema/default/TopLevel.js
index 8139ed9..9fcf003 100644
--- a/base/schema-flow/test/inputs/schema/postman-collection.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/postman-collection.schema/default/TopLevel.js
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -129,7 +129,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/prefix-items.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/prefix-items.schema/default/TopLevel.js
index de153a7..73e6a33 100644
--- a/base/schema-flow/test/inputs/schema/prefix-items.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/prefix-items.schema/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.js
index b1766ee..566c3d1 100644
--- a/base/schema-flow/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.js
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/ref-id-files.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/ref-id-files.schema/default/TopLevel.js
index fd3804b..7c4a34e 100644
--- a/base/schema-flow/test/inputs/schema/ref-id-files.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/ref-id-files.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/ref-remote.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/ref-remote.schema/default/TopLevel.js
index 17c0e10..b6fd5dc 100644
--- a/base/schema-flow/test/inputs/schema/ref-remote.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/ref-remote.schema/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/renaming-bug.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/renaming-bug.schema/default/TopLevel.js
index bfa4e9f..b950512 100644
--- a/base/schema-flow/test/inputs/schema/renaming-bug.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/renaming-bug.schema/default/TopLevel.js
@@ -210,7 +210,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -221,7 +221,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/required-draft3.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/required-draft3.schema/default/TopLevel.js
index d35b9e7..5753eef 100644
--- a/base/schema-flow/test/inputs/schema/required-draft3.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/required-draft3.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/required-non-properties.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/required-non-properties.schema/default/TopLevel.js
index 99c86ad..26a7fbe 100644
--- a/base/schema-flow/test/inputs/schema/required-non-properties.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/required-non-properties.schema/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/required.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/required.schema/default/TopLevel.js
index d35b9e7..5753eef 100644
--- a/base/schema-flow/test/inputs/schema/required.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/required.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.js
index 9868a9b..52051ec 100644
--- a/base/schema-flow/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.js
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/schema-constraints.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/schema-constraints.schema/default/TopLevel.js
index 2f38303..914ccc6 100644
--- a/base/schema-flow/test/inputs/schema/schema-constraints.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/schema-constraints.schema/default/TopLevel.js
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/simple-ref.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/simple-ref.schema/default/TopLevel.js
index 17c0e10..b6fd5dc 100644
--- a/base/schema-flow/test/inputs/schema/simple-ref.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/simple-ref.schema/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/strict-optional.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/strict-optional.schema/default/TopLevel.js
index f385a6f..ef246b5 100644
--- a/base/schema-flow/test/inputs/schema/strict-optional.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/strict-optional.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/top-level-array.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/top-level-array.schema/default/TopLevel.js
index 6db6cca..37f8c58 100644
--- a/base/schema-flow/test/inputs/schema/top-level-array.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/top-level-array.schema/default/TopLevel.js
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/top-level-enum.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/top-level-enum.schema/default/TopLevel.js
index e182a8b..1cdf5bf 100644
--- a/base/schema-flow/test/inputs/schema/top-level-enum.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/top-level-enum.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.js
index c8d59da..aba0687 100644
--- a/base/schema-flow/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.js
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/top-level-primitive.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/top-level-primitive.schema/default/TopLevel.js
index bd2bada..e8add90 100644
--- a/base/schema-flow/test/inputs/schema/top-level-primitive.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/top-level-primitive.schema/default/TopLevel.js
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/tuple.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/tuple.schema/default/TopLevel.js
index 0a3be23..0ef5021 100644
--- a/base/schema-flow/test/inputs/schema/tuple.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/tuple.schema/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.js
index 8c9f7fb..43d4ea8 100644
--- a/base/schema-flow/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.js
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -137,7 +137,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.js
index ab0a898..7a5e670 100644
--- a/base/schema-flow/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/union-int-double.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/union-int-double.schema/default/TopLevel.js
index 0e237ee..6fc2761 100644
--- a/base/schema-flow/test/inputs/schema/union-int-double.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/union-int-double.schema/default/TopLevel.js
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/union-list.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/union-list.schema/default/TopLevel.js
index 2b31d51..d51a622 100644
--- a/base/schema-flow/test/inputs/schema/union-list.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/union-list.schema/default/TopLevel.js
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/union.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/union.schema/default/TopLevel.js
index af3f6dc..12ba498 100644
--- a/base/schema-flow/test/inputs/schema/union.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/union.schema/default/TopLevel.js
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/uuid.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/uuid.schema/default/TopLevel.js
index b30ae68..00c6cf9 100644
--- a/base/schema-flow/test/inputs/schema/uuid.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/uuid.schema/default/TopLevel.js
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -129,7 +129,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-flow/test/inputs/schema/vega-lite.schema/default/TopLevel.js b/head/schema-flow/test/inputs/schema/vega-lite.schema/default/TopLevel.js
index e870aef..55f0d57 100644
--- a/base/schema-flow/test/inputs/schema/vega-lite.schema/default/TopLevel.js
+++ b/head/schema-flow/test/inputs/schema/vega-lite.schema/default/TopLevel.js
@@ -6199,7 +6199,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -6210,7 +6210,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/accessors.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/accessors.schema/default/TopLevel.js
index eb93e60..154797c 100644
--- a/base/schema-javascript/test/inputs/schema/accessors.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/accessors.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.js
index 01d1011..21b8574 100644
--- a/base/schema-javascript/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/any.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/any.schema/default/TopLevel.js
index 93439e6..a7e673a 100644
--- a/base/schema-javascript/test/inputs/schema/any.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/any.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/bool-string.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/bool-string.schema/default/TopLevel.js
index d5a8ec8..0d81450 100644
--- a/base/schema-javascript/test/inputs/schema/bool-string.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/bool-string.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/boolean-subschema.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/boolean-subschema.schema/default/TopLevel.js
index 596d20f..76f7547 100644
--- a/base/schema-javascript/test/inputs/schema/boolean-subschema.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/boolean-subschema.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/camelCase.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/camelCase.schema/default/TopLevel.js
index 4b3914b..c0e550b 100644
--- a/base/schema-javascript/test/inputs/schema/camelCase.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/camelCase.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/class-map-union.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/class-map-union.schema/default/TopLevel.js
index 0c7c22f..91bb633 100644
--- a/base/schema-javascript/test/inputs/schema/class-map-union.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/class-map-union.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/class-with-additional.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/class-with-additional.schema/default/TopLevel.js
index 13e6554..72e87d1 100644
--- a/base/schema-javascript/test/inputs/schema/class-with-additional.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/class-with-additional.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.js
index df87d90..2dac6aa 100644
--- a/base/schema-javascript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.js
index df87d90..2dac6aa 100644
--- a/base/schema-javascript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.js
index d5f1013..c674b26 100644
--- a/base/schema-javascript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/comment-injection.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/comment-injection.schema/default/TopLevel.js
index fc9edb9..ba69430 100644
--- a/base/schema-javascript/test/inputs/schema/comment-injection.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/comment-injection.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/const-non-string.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/const-non-string.schema/default/TopLevel.js
index 633025b..783418a 100644
--- a/base/schema-javascript/test/inputs/schema/const-non-string.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/const-non-string.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/constructor.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/constructor.schema/default/TopLevel.js
index 38db74a..9343932 100644
--- a/base/schema-javascript/test/inputs/schema/constructor.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/constructor.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/cut-enum.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/cut-enum.schema/default/TopLevel.js
index 8f33714..1481ace 100644
--- a/base/schema-javascript/test/inputs/schema/cut-enum.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/cut-enum.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/date-time-or-string.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/date-time-or-string.schema/default/TopLevel.js
index 02a84a3..4d28176 100644
--- a/base/schema-javascript/test/inputs/schema/date-time-or-string.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/date-time-or-string.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/date-time.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/date-time.schema/default/TopLevel.js
index e3c81ff..285a16b 100644
--- a/base/schema-javascript/test/inputs/schema/date-time.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/date-time.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/default-value.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/default-value.schema/default/TopLevel.js
index fed7bb6..9c7d374 100644
--- a/base/schema-javascript/test/inputs/schema/default-value.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/default-value.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.js
index a60a61d..5519be4 100644
--- a/base/schema-javascript/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/description.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/description.schema/default/TopLevel.js
index 9beaaae..339ad39 100644
--- a/base/schema-javascript/test/inputs/schema/description.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/description.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/direct-union.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/direct-union.schema/default/TopLevel.js
index bd3ee9a..d1970f4 100644
--- a/base/schema-javascript/test/inputs/schema/direct-union.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/direct-union.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/empty-object.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/empty-object.schema/default/TopLevel.js
index 57bbea2..1e8b660 100644
--- a/base/schema-javascript/test/inputs/schema/empty-object.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/empty-object.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/enum-large.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/enum-large.schema/default/TopLevel.js
index a0aed2b..da47547 100644
--- a/base/schema-javascript/test/inputs/schema/enum-large.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/enum-large.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/enum-with-null.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/enum-with-null.schema/default/TopLevel.js
index 492c8d8..6efdca8 100644
--- a/base/schema-javascript/test/inputs/schema/enum-with-null.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/enum-with-null.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/enum-with-values.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/enum-with-values.schema/default/TopLevel.js
index c7ec8cd..4de4ca1 100644
--- a/base/schema-javascript/test/inputs/schema/enum-with-values.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/enum-with-values.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/enum.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/enum.schema/default/TopLevel.js
index 2242ba6..6806070 100644
--- a/base/schema-javascript/test/inputs/schema/enum.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/enum.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/fractional-bounds.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/fractional-bounds.schema/default/TopLevel.js
index 2f0bc8f..50507ac 100644
--- a/base/schema-javascript/test/inputs/schema/fractional-bounds.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/fractional-bounds.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.js
index e5d80d9..f69fbc0 100644
--- a/base/schema-javascript/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.js
index 074fee8..57ead81 100644
--- a/base/schema-javascript/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/id-no-address.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/id-no-address.schema/default/TopLevel.js
index 8ceabb8..12344b7 100644
--- a/base/schema-javascript/test/inputs/schema/id-no-address.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/id-no-address.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/id-root.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/id-root.schema/default/TopLevel.js
index c70a4f7..7daea57 100644
--- a/base/schema-javascript/test/inputs/schema/id-root.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/id-root.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.js
index b293c44..038af9b 100644
--- a/base/schema-javascript/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/implicit-all-of.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/implicit-all-of.schema/default/TopLevel.js
index afc3a12..4dc53ea 100644
--- a/base/schema-javascript/test/inputs/schema/implicit-all-of.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/implicit-all-of.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.js
index 7b6d864..ecb67b6 100644
--- a/base/schema-javascript/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/implicit-one-of.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/implicit-one-of.schema/default/TopLevel.js
index 77234bf..fcb27b0 100644
--- a/base/schema-javascript/test/inputs/schema/implicit-one-of.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/implicit-one-of.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/integer-before-number.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/integer-before-number.schema/default/TopLevel.js
index 0be94db..039832e 100644
--- a/base/schema-javascript/test/inputs/schema/integer-before-number.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/integer-before-number.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/integer-float-union.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/integer-float-union.schema/default/TopLevel.js
index dbc9c1a..9a0922c 100644
--- a/base/schema-javascript/test/inputs/schema/integer-float-union.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/integer-float-union.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/integer-string.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/integer-string.schema/default/TopLevel.js
index 0464053..499421f 100644
--- a/base/schema-javascript/test/inputs/schema/integer-string.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/integer-string.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/integer-type.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/integer-type.schema/default/TopLevel.js
index b132e1a..e04899d 100644
--- a/base/schema-javascript/test/inputs/schema/integer-type.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/integer-type.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/intersection-nested.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/intersection-nested.schema/default/TopLevel.js
index 42c8812..d2b9fa9 100644
--- a/base/schema-javascript/test/inputs/schema/intersection-nested.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/intersection-nested.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/intersection.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/intersection.schema/default/TopLevel.js
index a7c7c5e..07e6097 100644
--- a/base/schema-javascript/test/inputs/schema/intersection.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/intersection.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.js
index 9515706..42e24b8 100644
--- a/base/schema-javascript/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/keyword-enum.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
index 0ca689e..2bb7751 100644
--- a/base/schema-javascript/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/keyword-enum.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/keyword-unions.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
index 70a8b52..488ad43 100644
--- a/base/schema-javascript/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/keyword-unions.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/light.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/light.schema/default/TopLevel.js
index 728625c..57811e6 100644
--- a/base/schema-javascript/test/inputs/schema/light.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/light.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/list.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/list.schema/default/TopLevel.js
index 2374532..ef2cb33 100644
--- a/base/schema-javascript/test/inputs/schema/list.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/list.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/min-max-items.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/min-max-items.schema/default/TopLevel.js
index b484c0d..6b88673 100644
--- a/base/schema-javascript/test/inputs/schema/min-max-items.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/min-max-items.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/minmax-integer.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/minmax-integer.schema/default/TopLevel.js
index d29d8cb..4fc5ece 100644
--- a/base/schema-javascript/test/inputs/schema/minmax-integer.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/minmax-integer.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/minmax.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/minmax.schema/default/TopLevel.js
index ef1dd4c..6c9528f 100644
--- a/base/schema-javascript/test/inputs/schema/minmax.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/minmax.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/minmaxlength.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/minmaxlength.schema/default/TopLevel.js
index 7fbee31..aef1a14 100644
--- a/base/schema-javascript/test/inputs/schema/minmaxlength.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/minmaxlength.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/multi-type-enum.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/multi-type-enum.schema/default/TopLevel.js
index c378dc9..30fe404 100644
--- a/base/schema-javascript/test/inputs/schema/multi-type-enum.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/multi-type-enum.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/mutually-recursive.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/mutually-recursive.schema/default/TopLevel.js
index ac03b2a..6ab00e7 100644
--- a/base/schema-javascript/test/inputs/schema/mutually-recursive.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/mutually-recursive.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.js
index 5fcdf07..ca65e69 100644
--- a/base/schema-javascript/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/non-standard-ref.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/non-standard-ref.schema/default/TopLevel.js
index b3dee50..c733173 100644
--- a/base/schema-javascript/test/inputs/schema/non-standard-ref.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/non-standard-ref.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.js
index ad02812..d582759 100644
--- a/base/schema-javascript/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/object-type-required.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/object-type-required.schema/default/TopLevel.js
index 4b78556..3f9d981 100644
--- a/base/schema-javascript/test/inputs/schema/object-type-required.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/object-type-required.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/optional-any.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/optional-any.schema/default/TopLevel.js
index cb9365b..305247f 100644
--- a/base/schema-javascript/test/inputs/schema/optional-any.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/optional-any.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/optional-const-ref.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/optional-const-ref.schema/default/TopLevel.js
index d9d25b7..a92010b 100644
--- a/base/schema-javascript/test/inputs/schema/optional-const-ref.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/optional-const-ref.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/optional-constraints.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/optional-constraints.schema/default/TopLevel.js
index dfcbd91..3011e2c 100644
--- a/base/schema-javascript/test/inputs/schema/optional-constraints.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/optional-constraints.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/optional-date-time.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/optional-date-time.schema/default/TopLevel.js
index 464092f..4f4a047 100644
--- a/base/schema-javascript/test/inputs/schema/optional-date-time.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/optional-date-time.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/optional-enum.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/optional-enum.schema/default/TopLevel.js
index b06093c..a44a01e 100644
--- a/base/schema-javascript/test/inputs/schema/optional-enum.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/optional-enum.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/optional-property.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/optional-property.schema/default/TopLevel.js
index 60e3446..b1f3239 100644
--- a/base/schema-javascript/test/inputs/schema/optional-property.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/optional-property.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/pattern.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/pattern.schema/default/TopLevel.js
index 4b96753..748c15d 100644
--- a/base/schema-javascript/test/inputs/schema/pattern.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/pattern.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/postman-collection.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/postman-collection.schema/default/TopLevel.js
index 87d210f..6aab75f 100644
--- a/base/schema-javascript/test/inputs/schema/postman-collection.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/postman-collection.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/prefix-items.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/prefix-items.schema/default/TopLevel.js
index b2316bd..4c99b15 100644
--- a/base/schema-javascript/test/inputs/schema/prefix-items.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/prefix-items.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.js
index 17a3209..f892c8e 100644
--- a/base/schema-javascript/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/ref-id-files.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/ref-id-files.schema/default/TopLevel.js
index 8f33714..1481ace 100644
--- a/base/schema-javascript/test/inputs/schema/ref-id-files.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/ref-id-files.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/ref-remote.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/ref-remote.schema/default/TopLevel.js
index 2374532..ef2cb33 100644
--- a/base/schema-javascript/test/inputs/schema/ref-remote.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/ref-remote.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/renaming-bug.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/renaming-bug.schema/default/TopLevel.js
index 6759356..5296c11 100644
--- a/base/schema-javascript/test/inputs/schema/renaming-bug.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/renaming-bug.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/required-draft3.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/required-draft3.schema/default/TopLevel.js
index 28f27ca..ca9a108 100644
--- a/base/schema-javascript/test/inputs/schema/required-draft3.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/required-draft3.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/required-non-properties.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/required-non-properties.schema/default/TopLevel.js
index 4f4880b..51d7faa 100644
--- a/base/schema-javascript/test/inputs/schema/required-non-properties.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/required-non-properties.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/required.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/required.schema/default/TopLevel.js
index 28f27ca..ca9a108 100644
--- a/base/schema-javascript/test/inputs/schema/required.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/required.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.js
index c5a3d56..bd6165f 100644
--- a/base/schema-javascript/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/schema-constraints.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/schema-constraints.schema/default/TopLevel.js
index 90aacfd..9424391 100644
--- a/base/schema-javascript/test/inputs/schema/schema-constraints.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/schema-constraints.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/simple-ref.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/simple-ref.schema/default/TopLevel.js
index 2374532..ef2cb33 100644
--- a/base/schema-javascript/test/inputs/schema/simple-ref.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/simple-ref.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/strict-optional.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/strict-optional.schema/default/TopLevel.js
index fc674aa..4f47d43 100644
--- a/base/schema-javascript/test/inputs/schema/strict-optional.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/strict-optional.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/top-level-array.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/top-level-array.schema/default/TopLevel.js
index c52556d..315f9f3 100644
--- a/base/schema-javascript/test/inputs/schema/top-level-array.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/top-level-array.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/top-level-enum.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/top-level-enum.schema/default/TopLevel.js
index a86a1a2..65890d1 100644
--- a/base/schema-javascript/test/inputs/schema/top-level-enum.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/top-level-enum.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.js
index b35df94..960e9f5 100644
--- a/base/schema-javascript/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/top-level-primitive.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/top-level-primitive.schema/default/TopLevel.js
index 28cb102..c749fac 100644
--- a/base/schema-javascript/test/inputs/schema/top-level-primitive.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/top-level-primitive.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/tuple.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/tuple.schema/default/TopLevel.js
index 0d95545..d7f14f7 100644
--- a/base/schema-javascript/test/inputs/schema/tuple.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/tuple.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.js
index 2608ea9..fff310d 100644
--- a/base/schema-javascript/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.js
index d82c497..b249542 100644
--- a/base/schema-javascript/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/union-int-double.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/union-int-double.schema/default/TopLevel.js
index 02359d9..78c36f9 100644
--- a/base/schema-javascript/test/inputs/schema/union-int-double.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/union-int-double.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/union-list.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/union-list.schema/default/TopLevel.js
index a10786e..72fc813 100644
--- a/base/schema-javascript/test/inputs/schema/union-list.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/union-list.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/union.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/union.schema/default/TopLevel.js
index 7b9e08f..5492a65 100644
--- a/base/schema-javascript/test/inputs/schema/union.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/union.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/uuid.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/uuid.schema/default/TopLevel.js
index 4694515..fcf3299 100644
--- a/base/schema-javascript/test/inputs/schema/uuid.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/uuid.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-javascript/test/inputs/schema/vega-lite.schema/default/TopLevel.js b/head/schema-javascript/test/inputs/schema/vega-lite.schema/default/TopLevel.js
index 61dcf18..76f28a7 100644
--- a/base/schema-javascript/test/inputs/schema/vega-lite.schema/default/TopLevel.js
+++ b/head/schema-javascript/test/inputs/schema/vega-lite.schema/default/TopLevel.js
@@ -101,7 +101,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result = {};
+        const result = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -112,7 +112,7 @@ function transform(val, typ, getProps, key = '', parent = '') {
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/accessors.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/accessors.schema/default/TopLevel.ts
index eb5c28b..2ffc755 100644
--- a/base/schema-typescript/test/inputs/schema/accessors.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/accessors.schema/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.ts
index 3a1e7c3..a318088 100644
--- a/base/schema-typescript/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/all-of-additional-properties-false.schema/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/any.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/any.schema/default/TopLevel.ts
index 293a64c..ce1f66f 100644
--- a/base/schema-typescript/test/inputs/schema/any.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/any.schema/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/bool-string.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/bool-string.schema/default/TopLevel.ts
index 8604379..7276850 100644
--- a/base/schema-typescript/test/inputs/schema/bool-string.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/bool-string.schema/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/boolean-subschema.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/boolean-subschema.schema/default/TopLevel.ts
index f2945d4..1dc7b4c 100644
--- a/base/schema-typescript/test/inputs/schema/boolean-subschema.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/boolean-subschema.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/camelCase.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/camelCase.schema/default/TopLevel.ts
index 1c2f56a..598a503 100644
--- a/base/schema-typescript/test/inputs/schema/camelCase.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/camelCase.schema/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/class-map-union.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/class-map-union.schema/default/TopLevel.ts
index dedacb8..2da174c 100644
--- a/base/schema-typescript/test/inputs/schema/class-map-union.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/class-map-union.schema/default/TopLevel.ts
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/class-with-additional.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/class-with-additional.schema/default/TopLevel.ts
index 15df75c..4bdb945 100644
--- a/base/schema-typescript/test/inputs/schema/class-with-additional.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/class-with-additional.schema/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.ts
index 934c40e..a9e173d 100644
--- a/base/schema-typescript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/comment-injection-enum-nested-comment.schema/default/TopLevel.ts
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.ts
index 2a64dc5..d15151f 100644
--- a/base/schema-typescript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/comment-injection-enum.schema/default/TopLevel.ts
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -138,7 +138,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.ts
index 504b925..2ed28c8 100644
--- a/base/schema-typescript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/comment-injection-nested-comment.schema/default/TopLevel.ts
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/comment-injection.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/comment-injection.schema/default/TopLevel.ts
index 7b4e86e..6d078d1 100644
--- a/base/schema-typescript/test/inputs/schema/comment-injection.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/comment-injection.schema/default/TopLevel.ts
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/const-non-string.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/const-non-string.schema/default/TopLevel.ts
index 471597a..32c6e6c 100644
--- a/base/schema-typescript/test/inputs/schema/const-non-string.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/const-non-string.schema/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/constructor.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/constructor.schema/default/TopLevel.ts
index 213c0ae..cc1e318 100644
--- a/base/schema-typescript/test/inputs/schema/constructor.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/constructor.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/cut-enum.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/cut-enum.schema/default/TopLevel.ts
index 4b340a1..6f262d0 100644
--- a/base/schema-typescript/test/inputs/schema/cut-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/cut-enum.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/date-time-or-string.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/date-time-or-string.schema/default/TopLevel.ts
index f2f2b10..ed3394a 100644
--- a/base/schema-typescript/test/inputs/schema/date-time-or-string.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/date-time-or-string.schema/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/date-time.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/date-time.schema/default/TopLevel.ts
index 4427935..6e69353 100644
--- a/base/schema-typescript/test/inputs/schema/date-time.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/date-time.schema/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/default-value.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/default-value.schema/default/TopLevel.ts
index 3b6063c..2516866 100644
--- a/base/schema-typescript/test/inputs/schema/default-value.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/default-value.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.ts
index 5fa5b81..7d7c6cb 100644
--- a/base/schema-typescript/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/description-with-double-quotes.schema/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/description.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/description.schema/default/TopLevel.ts
index 239362c..4064599 100644
--- a/base/schema-typescript/test/inputs/schema/description.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/description.schema/default/TopLevel.ts
@@ -144,7 +144,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -155,7 +155,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/direct-union.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/direct-union.schema/default/TopLevel.ts
index 7c30718..27d37b3 100644
--- a/base/schema-typescript/test/inputs/schema/direct-union.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/direct-union.schema/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/empty-object.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/empty-object.schema/default/TopLevel.ts
index ad5255b..a2cf17f 100644
--- a/base/schema-typescript/test/inputs/schema/empty-object.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/empty-object.schema/default/TopLevel.ts
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/enum-large.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/enum-large.schema/default/TopLevel.ts
index 12c52ac..1d3e416 100644
--- a/base/schema-typescript/test/inputs/schema/enum-large.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/enum-large.schema/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/enum-with-null.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/enum-with-null.schema/default/TopLevel.ts
index faf205e..8a139dd 100644
--- a/base/schema-typescript/test/inputs/schema/enum-with-null.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/enum-with-null.schema/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/enum-with-values.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/enum-with-values.schema/default/TopLevel.ts
index 0d0c447..67cc648 100644
--- a/base/schema-typescript/test/inputs/schema/enum-with-values.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/enum-with-values.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/enum.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/enum.schema/default/TopLevel.ts
index 368ac2b..3d7eb73 100644
--- a/base/schema-typescript/test/inputs/schema/enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/enum.schema/default/TopLevel.ts
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/fractional-bounds.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/fractional-bounds.schema/default/TopLevel.ts
index 8ea70f3..cea7a7f 100644
--- a/base/schema-typescript/test/inputs/schema/fractional-bounds.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/fractional-bounds.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.ts
index fc206e1..18c06a9 100644
--- a/base/schema-typescript/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/go-schema-pattern-properties.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.ts
index e07edf0..62ecbf8 100644
--- a/base/schema-typescript/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/haskell-enum-forbidden.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/id-no-address.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/id-no-address.schema/default/TopLevel.ts
index 29bc994..d496c7b 100644
--- a/base/schema-typescript/test/inputs/schema/id-no-address.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/id-no-address.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/id-root.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/id-root.schema/default/TopLevel.ts
index 444933f..69718b7 100644
--- a/base/schema-typescript/test/inputs/schema/id-root.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/id-root.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.ts
index 9d2df90..ec8d8ef 100644
--- a/base/schema-typescript/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/ie-suffix-singularization.schema/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/implicit-all-of.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/implicit-all-of.schema/default/TopLevel.ts
index 9f7b670..bf6d536 100644
--- a/base/schema-typescript/test/inputs/schema/implicit-all-of.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/implicit-all-of.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.ts
index 887b34d..aca00b7 100644
--- a/base/schema-typescript/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/implicit-class-array-union.schema/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/implicit-one-of.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/implicit-one-of.schema/default/TopLevel.ts
index 8345516..64f6edf 100644
--- a/base/schema-typescript/test/inputs/schema/implicit-one-of.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/implicit-one-of.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/integer-before-number.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/integer-before-number.schema/default/TopLevel.ts
index 6e4d1cf..3428eab 100644
--- a/base/schema-typescript/test/inputs/schema/integer-before-number.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/integer-before-number.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/integer-float-union.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/integer-float-union.schema/default/TopLevel.ts
index 30bbefd..d37525e 100644
--- a/base/schema-typescript/test/inputs/schema/integer-float-union.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/integer-float-union.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/integer-string.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/integer-string.schema/default/TopLevel.ts
index f9a36b5..d866dcc 100644
--- a/base/schema-typescript/test/inputs/schema/integer-string.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/integer-string.schema/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/integer-type.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/integer-type.schema/default/TopLevel.ts
index 54caffa..5fc61cc 100644
--- a/base/schema-typescript/test/inputs/schema/integer-type.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/integer-type.schema/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/intersection-nested.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/intersection-nested.schema/default/TopLevel.ts
index 2d9a3b2..24b54f7 100644
--- a/base/schema-typescript/test/inputs/schema/intersection-nested.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/intersection-nested.schema/default/TopLevel.ts
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/intersection.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/intersection.schema/default/TopLevel.ts
index 29a519e..bb7e04c 100644
--- a/base/schema-typescript/test/inputs/schema/intersection.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/intersection.schema/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.ts
index 9f9b3d6..70ad9d6 100644
--- a/base/schema-typescript/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/issue2680-top-level-array.schema/default/TopLevel.ts
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
index a2156ac..dc16cef 100644
--- a/base/schema-typescript/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/keyword-enum.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
index 0674cc9..b518593 100644
--- a/base/schema-typescript/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/keyword-unions.schema/default/TopLevel.ts
@@ -1122,7 +1122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -1133,7 +1133,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/light.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/light.schema/default/TopLevel.ts
index a84e1b1..0d4a93d 100644
--- a/base/schema-typescript/test/inputs/schema/light.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/light.schema/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/list.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/list.schema/default/TopLevel.ts
index a3e9b2b..92968e7 100644
--- a/base/schema-typescript/test/inputs/schema/list.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/list.schema/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/min-max-items.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/min-max-items.schema/default/TopLevel.ts
index a88d16b..f32ee7c 100644
--- a/base/schema-typescript/test/inputs/schema/min-max-items.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/min-max-items.schema/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/minmax-integer.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/minmax-integer.schema/default/TopLevel.ts
index 4d15bf4..38ea1e9 100644
--- a/base/schema-typescript/test/inputs/schema/minmax-integer.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/minmax-integer.schema/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/minmax.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/minmax.schema/default/TopLevel.ts
index 74eb204..382c552 100644
--- a/base/schema-typescript/test/inputs/schema/minmax.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/minmax.schema/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/minmaxlength.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/minmaxlength.schema/default/TopLevel.ts
index ce21e9c..e389dd2 100644
--- a/base/schema-typescript/test/inputs/schema/minmaxlength.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/minmaxlength.schema/default/TopLevel.ts
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/multi-type-enum.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/multi-type-enum.schema/default/TopLevel.ts
index 2ac8eea..8467878 100644
--- a/base/schema-typescript/test/inputs/schema/multi-type-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/multi-type-enum.schema/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/mutually-recursive.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/mutually-recursive.schema/default/TopLevel.ts
index 332f39c..447c0f4 100644
--- a/base/schema-typescript/test/inputs/schema/mutually-recursive.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/mutually-recursive.schema/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.ts
index 8501247..e688320 100644
--- a/base/schema-typescript/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/nested-intersection-union.schema/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/non-standard-ref.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/non-standard-ref.schema/default/TopLevel.ts
index 9dd48da..f4b2d0b 100644
--- a/base/schema-typescript/test/inputs/schema/non-standard-ref.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/non-standard-ref.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.ts
index d59ca93..a97ff6f 100644
--- a/base/schema-typescript/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/nullable-optional-one-of.schema/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/object-type-required.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/object-type-required.schema/default/TopLevel.ts
index 8a93edc..ddfe1a6 100644
--- a/base/schema-typescript/test/inputs/schema/object-type-required.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/object-type-required.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/optional-any.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/optional-any.schema/default/TopLevel.ts
index 21f335b..639c5c1 100644
--- a/base/schema-typescript/test/inputs/schema/optional-any.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/optional-any.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
index 1d6ca31..a0dc627 100644
--- a/base/schema-typescript/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -129,7 +129,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
index 8cf1679..9fedd98 100644
--- a/base/schema-typescript/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/optional-date-time.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/optional-date-time.schema/default/TopLevel.ts
index c6d057f..27c7955 100644
--- a/base/schema-typescript/test/inputs/schema/optional-date-time.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/optional-date-time.schema/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/optional-enum.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/optional-enum.schema/default/TopLevel.ts
index 0f2ad1e..ae1ddaf 100644
--- a/base/schema-typescript/test/inputs/schema/optional-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/optional-enum.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/optional-property.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/optional-property.schema/default/TopLevel.ts
index 5d84647..a7d5b12 100644
--- a/base/schema-typescript/test/inputs/schema/optional-property.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/optional-property.schema/default/TopLevel.ts
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/pattern.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/pattern.schema/default/TopLevel.ts
index f596bff..fcd4454 100644
--- a/base/schema-typescript/test/inputs/schema/pattern.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/pattern.schema/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/postman-collection.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/postman-collection.schema/default/TopLevel.ts
index 34dfb4e..42b7441 100644
--- a/base/schema-typescript/test/inputs/schema/postman-collection.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/postman-collection.schema/default/TopLevel.ts
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -129,7 +129,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/prefix-items.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/prefix-items.schema/default/TopLevel.ts
index ee2e5bf..7d62a6f 100644
--- a/base/schema-typescript/test/inputs/schema/prefix-items.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/prefix-items.schema/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.ts
index 3fc7608..357bc8c 100644
--- a/base/schema-typescript/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/recursive-union-flattening.schema/default/TopLevel.ts
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/ref-id-files.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/ref-id-files.schema/default/TopLevel.ts
index 4b340a1..6f262d0 100644
--- a/base/schema-typescript/test/inputs/schema/ref-id-files.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/ref-id-files.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/ref-remote.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/ref-remote.schema/default/TopLevel.ts
index a3e9b2b..92968e7 100644
--- a/base/schema-typescript/test/inputs/schema/ref-remote.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/ref-remote.schema/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/renaming-bug.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/renaming-bug.schema/default/TopLevel.ts
index f2841a1..3fde61d 100644
--- a/base/schema-typescript/test/inputs/schema/renaming-bug.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/renaming-bug.schema/default/TopLevel.ts
@@ -195,7 +195,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -206,7 +206,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/required-draft3.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/required-draft3.schema/default/TopLevel.ts
index 5d752aa..d576a4d 100644
--- a/base/schema-typescript/test/inputs/schema/required-draft3.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/required-draft3.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/required-non-properties.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/required-non-properties.schema/default/TopLevel.ts
index b5a3f4a..6684755 100644
--- a/base/schema-typescript/test/inputs/schema/required-non-properties.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/required-non-properties.schema/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/required.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/required.schema/default/TopLevel.ts
index 5d752aa..d576a4d 100644
--- a/base/schema-typescript/test/inputs/schema/required.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/required.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.ts
index b76a76b..708768a 100644
--- a/base/schema-typescript/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/rust-cycle-breaker-union.schema/default/TopLevel.ts
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/schema-constraints.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/schema-constraints.schema/default/TopLevel.ts
index 80dbe26..03e0bee 100644
--- a/base/schema-typescript/test/inputs/schema/schema-constraints.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/schema-constraints.schema/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/simple-ref.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/simple-ref.schema/default/TopLevel.ts
index a3e9b2b..92968e7 100644
--- a/base/schema-typescript/test/inputs/schema/simple-ref.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/simple-ref.schema/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/strict-optional.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/strict-optional.schema/default/TopLevel.ts
index 208356c..04e082f 100644
--- a/base/schema-typescript/test/inputs/schema/strict-optional.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/strict-optional.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/top-level-array.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/top-level-array.schema/default/TopLevel.ts
index bfa6424..7fc1106 100644
--- a/base/schema-typescript/test/inputs/schema/top-level-array.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/top-level-array.schema/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/top-level-enum.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/top-level-enum.schema/default/TopLevel.ts
index 26d77b6..4f1e7f3 100644
--- a/base/schema-typescript/test/inputs/schema/top-level-enum.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/top-level-enum.schema/default/TopLevel.ts
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.ts
index eb865a8..cafbb2e 100644
--- a/base/schema-typescript/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/top-level-primitive-array.schema/default/TopLevel.ts
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/top-level-primitive.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/top-level-primitive.schema/default/TopLevel.ts
index e37cbbe..1a5b401 100644
--- a/base/schema-typescript/test/inputs/schema/top-level-primitive.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/top-level-primitive.schema/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/tuple.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/tuple.schema/default/TopLevel.ts
index d90f7f5..7cf3f1c 100644
--- a/base/schema-typescript/test/inputs/schema/tuple.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/tuple.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.ts
index 90b3f3e..a0dc1d4 100644
--- a/base/schema-typescript/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/unevaluated-properties.schema/default/TopLevel.ts
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -134,7 +134,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.ts
index 3da4931..717ebd4 100644
--- a/base/schema-typescript/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/unicode-codepoint-length.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/union-int-double.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/union-int-double.schema/default/TopLevel.ts
index bcd40b1..0eae11d 100644
--- a/base/schema-typescript/test/inputs/schema/union-int-double.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/union-int-double.schema/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/union-list.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/union-list.schema/default/TopLevel.ts
index 3cfb51f..50f99f3 100644
--- a/base/schema-typescript/test/inputs/schema/union-list.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/union-list.schema/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/union.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/union.schema/default/TopLevel.ts
index 1ba82fe..0d94449 100644
--- a/base/schema-typescript/test/inputs/schema/union.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/union.schema/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/uuid.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/uuid.schema/default/TopLevel.ts
index 052065c..4ac6473 100644
--- a/base/schema-typescript/test/inputs/schema/uuid.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/uuid.schema/default/TopLevel.ts
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/schema-typescript/test/inputs/schema/vega-lite.schema/default/TopLevel.ts b/head/schema-typescript/test/inputs/schema/vega-lite.schema/default/TopLevel.ts
index 0ada8e0..b75e56c 100644
--- a/base/schema-typescript/test/inputs/schema/vega-lite.schema/default/TopLevel.ts
+++ b/head/schema-typescript/test/inputs/schema/vega-lite.schema/default/TopLevel.ts
@@ -5956,7 +5956,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -5967,7 +5967,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/00c36.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/00c36.json/default/TopLevel.ts
index a983213..fc1c2ce 100644
--- a/base/typescript/test/inputs/json/misc/00c36.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/00c36.json/default/TopLevel.ts
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/00ec5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/00ec5.json/default/TopLevel.ts
index 5ec761b..4772f4d 100644
--- a/base/typescript/test/inputs/json/misc/00ec5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/00ec5.json/default/TopLevel.ts
@@ -173,7 +173,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -184,7 +184,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/010b1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/010b1.json/default/TopLevel.ts
index d624211..39e8567 100644
--- a/base/typescript/test/inputs/json/misc/010b1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/010b1.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/016af.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/016af.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/016af.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/016af.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/033b1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/033b1.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/033b1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/033b1.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/050b0.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/050b0.json/default/TopLevel.ts
index 16de21f..a0818b3 100644
--- a/base/typescript/test/inputs/json/misc/050b0.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/050b0.json/default/TopLevel.ts
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/06bee.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/06bee.json/default/TopLevel.ts
index 5bb27b2..8b10a25 100644
--- a/base/typescript/test/inputs/json/misc/06bee.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/06bee.json/default/TopLevel.ts
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -153,7 +153,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/07540.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/07540.json/default/TopLevel.ts
index 6e06286..4fb6644 100644
--- a/base/typescript/test/inputs/json/misc/07540.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/07540.json/default/TopLevel.ts
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/0779f.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/0779f.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/0779f.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/0779f.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/07c75.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/07c75.json/default/TopLevel.ts
index 943765c..bd97756 100644
--- a/base/typescript/test/inputs/json/misc/07c75.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/07c75.json/default/TopLevel.ts
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -143,7 +143,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/09f54.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/09f54.json/default/TopLevel.ts
index 38eedf1..eed9604 100644
--- a/base/typescript/test/inputs/json/misc/09f54.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/09f54.json/default/TopLevel.ts
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/0a358.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/0a358.json/default/TopLevel.ts
index 4cb922c..2746414 100644
--- a/base/typescript/test/inputs/json/misc/0a358.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/0a358.json/default/TopLevel.ts
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -133,7 +133,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/0a91a.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
index 22b91e1..e71c14e 100644
--- a/base/typescript/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/0a91a.json/default/TopLevel.ts
@@ -322,7 +322,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -333,7 +333,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/0b91a.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/0b91a.json/default/TopLevel.ts
index 507c416..7788252 100644
--- a/base/typescript/test/inputs/json/misc/0b91a.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/0b91a.json/default/TopLevel.ts
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/0cffa.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/0cffa.json/default/TopLevel.ts
index 49be2bd..526bc9a 100644
--- a/base/typescript/test/inputs/json/misc/0cffa.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/0cffa.json/default/TopLevel.ts
@@ -215,7 +215,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -226,7 +226,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
index 7ad0a89..93dba41 100644
--- a/base/typescript/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/0e0c2.json/default/TopLevel.ts
@@ -178,7 +178,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -189,7 +189,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/0fecf.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/0fecf.json/default/TopLevel.ts
index fc2446d..d437cfe 100644
--- a/base/typescript/test/inputs/json/misc/0fecf.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/0fecf.json/default/TopLevel.ts
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/10be4.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/10be4.json/default/TopLevel.ts
index 40b751e..0b166b9 100644
--- a/base/typescript/test/inputs/json/misc/10be4.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/10be4.json/default/TopLevel.ts
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/112b5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/112b5.json/default/TopLevel.ts
index 9a20499..b87f838 100644
--- a/base/typescript/test/inputs/json/misc/112b5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/112b5.json/default/TopLevel.ts
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/127a1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/127a1.json/default/TopLevel.ts
index 649aa7f..66dc563 100644
--- a/base/typescript/test/inputs/json/misc/127a1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/127a1.json/default/TopLevel.ts
@@ -215,7 +215,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -226,7 +226,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/13d8d.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/13d8d.json/default/TopLevel.ts
index 493d608..22f1c0e 100644
--- a/base/typescript/test/inputs/json/misc/13d8d.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/13d8d.json/default/TopLevel.ts
@@ -133,7 +133,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -144,7 +144,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/14d38.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/14d38.json/default/TopLevel.ts
index 4325fc0..59c74eb 100644
--- a/base/typescript/test/inputs/json/misc/14d38.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/14d38.json/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/167d6.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/167d6.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/167d6.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/167d6.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/16bc5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
index 5e66d83..7d69fbe 100644
--- a/base/typescript/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/16bc5.json/default/TopLevel.ts
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/176f1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/176f1.json/default/TopLevel.ts
index ecd58f0..1b5849d 100644
--- a/base/typescript/test/inputs/json/misc/176f1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/176f1.json/default/TopLevel.ts
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -143,7 +143,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/1a7f5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/1a7f5.json/default/TopLevel.ts
index d624211..39e8567 100644
--- a/base/typescript/test/inputs/json/misc/1a7f5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/1a7f5.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/1b28c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/1b28c.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/1b409.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/1b409.json/default/TopLevel.ts
index d0d2ad2..445362c 100644
--- a/base/typescript/test/inputs/json/misc/1b409.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/1b409.json/default/TopLevel.ts
@@ -181,7 +181,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -192,7 +192,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/2465e.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/2465e.json/default/TopLevel.ts
index 4c9b561..819aa4a 100644
--- a/base/typescript/test/inputs/json/misc/2465e.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/2465e.json/default/TopLevel.ts
@@ -180,7 +180,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -191,7 +191,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/24f52.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/24f52.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/24f52.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/24f52.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/262f0.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/262f0.json/default/TopLevel.ts
index 2f6399a..3ba7024 100644
--- a/base/typescript/test/inputs/json/misc/262f0.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/262f0.json/default/TopLevel.ts
@@ -207,7 +207,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -218,7 +218,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/26b49.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/26b49.json/default/TopLevel.ts
index 154183a..c8629b5 100644
--- a/base/typescript/test/inputs/json/misc/26b49.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/26b49.json/default/TopLevel.ts
@@ -214,7 +214,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -225,7 +225,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/26c9c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/26c9c.json/default/TopLevel.ts
index b55faf6..28bc712 100644
--- a/base/typescript/test/inputs/json/misc/26c9c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/26c9c.json/default/TopLevel.ts
@@ -294,7 +294,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -305,7 +305,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/27332.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/27332.json/default/TopLevel.ts
index 35fbe5d..742e2ab 100644
--- a/base/typescript/test/inputs/json/misc/27332.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/27332.json/default/TopLevel.ts
@@ -246,7 +246,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -257,7 +257,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/29f47.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/29f47.json/default/TopLevel.ts
index c976ff4..1c8aed7 100644
--- a/base/typescript/test/inputs/json/misc/29f47.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/29f47.json/default/TopLevel.ts
@@ -233,7 +233,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -244,7 +244,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
index a7e2dd6..b0e2f56 100644
--- a/base/typescript/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/2d4e2.json/default/TopLevel.ts
@@ -191,7 +191,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -202,7 +202,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/2df80.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/2df80.json/default/TopLevel.ts
index 450439c..07efe7a 100644
--- a/base/typescript/test/inputs/json/misc/2df80.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/2df80.json/default/TopLevel.ts
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/31189.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/31189.json/default/TopLevel.ts
index d4aaa45..dee8570 100644
--- a/base/typescript/test/inputs/json/misc/31189.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/31189.json/default/TopLevel.ts
@@ -134,7 +134,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -145,7 +145,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/32431.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/32431.json/default/TopLevel.ts
index d47172c..a4285a7 100644
--- a/base/typescript/test/inputs/json/misc/32431.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/32431.json/default/TopLevel.ts
@@ -170,7 +170,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -181,7 +181,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/32d5c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/32d5c.json/default/TopLevel.ts
index 9774154..ec5f7af 100644
--- a/base/typescript/test/inputs/json/misc/32d5c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/32d5c.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/337ed.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/337ed.json/default/TopLevel.ts
index bfe127f..afb9141 100644
--- a/base/typescript/test/inputs/json/misc/337ed.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/337ed.json/default/TopLevel.ts
@@ -165,7 +165,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -176,7 +176,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/33d2e.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/33d2e.json/default/TopLevel.ts
index b2bf5c1..f359b5f 100644
--- a/base/typescript/test/inputs/json/misc/33d2e.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/33d2e.json/default/TopLevel.ts
@@ -148,7 +148,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -159,7 +159,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/34702.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/34702.json/default/TopLevel.ts
index 695cfe1..aa62f14 100644
--- a/base/typescript/test/inputs/json/misc/34702.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/34702.json/default/TopLevel.ts
@@ -162,7 +162,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -173,7 +173,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/3536b.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/3536b.json/default/TopLevel.ts
index dd27fff..b6a7110 100644
--- a/base/typescript/test/inputs/json/misc/3536b.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/3536b.json/default/TopLevel.ts
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/3659d.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/3659d.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/3659d.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/3659d.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/36d5d.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/36d5d.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/36d5d.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/36d5d.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/3a6b3.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/3a6b3.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/3a6b3.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/3a6b3.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/3e9a3.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/3e9a3.json/default/TopLevel.ts
index ecd58f0..1b5849d 100644
--- a/base/typescript/test/inputs/json/misc/3e9a3.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/3e9a3.json/default/TopLevel.ts
@@ -132,7 +132,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -143,7 +143,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
index c8671c7..447f016 100644
--- a/base/typescript/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/3f1ce.json/default/TopLevel.ts
@@ -207,7 +207,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -218,7 +218,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/421d4.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/421d4.json/default/TopLevel.ts
index 81973fb..5b670fd 100644
--- a/base/typescript/test/inputs/json/misc/421d4.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/421d4.json/default/TopLevel.ts
@@ -218,7 +218,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -229,7 +229,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/437e7.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/437e7.json/default/TopLevel.ts
index 3093256..654c135 100644
--- a/base/typescript/test/inputs/json/misc/437e7.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/437e7.json/default/TopLevel.ts
@@ -211,7 +211,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -222,7 +222,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/43970.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/43970.json/default/TopLevel.ts
index a719de8..bd2f320 100644
--- a/base/typescript/test/inputs/json/misc/43970.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/43970.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/43eaf.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/43eaf.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/43eaf.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/43eaf.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/458db.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/458db.json/default/TopLevel.ts
index 5f89b91..3d70614 100644
--- a/base/typescript/test/inputs/json/misc/458db.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/458db.json/default/TopLevel.ts
@@ -148,7 +148,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -159,7 +159,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/4961a.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/4961a.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/4961a.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/4961a.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/4a0d7.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/4a455.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/4a455.json/default/TopLevel.ts
index 563ca2d..5003aff 100644
--- a/base/typescript/test/inputs/json/misc/4a455.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/4a455.json/default/TopLevel.ts
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/4c547.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/4c547.json/default/TopLevel.ts
index 5e66d83..7d69fbe 100644
--- a/base/typescript/test/inputs/json/misc/4c547.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/4c547.json/default/TopLevel.ts
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/4d6fb.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/4d6fb.json/default/TopLevel.ts
index f0215d0..43f9ecf 100644
--- a/base/typescript/test/inputs/json/misc/4d6fb.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/4d6fb.json/default/TopLevel.ts
@@ -245,7 +245,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -256,7 +256,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/4e336.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/4e336.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/4e336.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/4e336.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/54147.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/54147.json/default/TopLevel.ts
index 021ff27..5c52d0e 100644
--- a/base/typescript/test/inputs/json/misc/54147.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/54147.json/default/TopLevel.ts
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/54d32.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/54d32.json/default/TopLevel.ts
index 38f7422..42cb5de 100644
--- a/base/typescript/test/inputs/json/misc/54d32.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/54d32.json/default/TopLevel.ts
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/570ec.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/570ec.json/default/TopLevel.ts
index 4d6318e..63801fc 100644
--- a/base/typescript/test/inputs/json/misc/570ec.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/570ec.json/default/TopLevel.ts
@@ -139,7 +139,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -150,7 +150,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/5dd0d.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/5dd0d.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/5dd0d.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/5dd0d.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/5eae5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/5eae5.json/default/TopLevel.ts
index 1ec275a..0d67487 100644
--- a/base/typescript/test/inputs/json/misc/5eae5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/5eae5.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/5eb20.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/5eb20.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/5eb20.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/5eb20.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/5f3a1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/5f3a1.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/5f3a1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/5f3a1.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/5f7fe.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/5f7fe.json/default/TopLevel.ts
index c0a3d03..be1947e 100644
--- a/base/typescript/test/inputs/json/misc/5f7fe.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/5f7fe.json/default/TopLevel.ts
@@ -292,7 +292,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -303,7 +303,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/617e8.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/617e8.json/default/TopLevel.ts
index 2c1281b..a72fee2 100644
--- a/base/typescript/test/inputs/json/misc/617e8.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/617e8.json/default/TopLevel.ts
@@ -291,7 +291,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -302,7 +302,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/61b66.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/61b66.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/61b66.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/61b66.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/6260a.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/6260a.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/6260a.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/6260a.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/65dec.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/65dec.json/default/TopLevel.ts
index 9324220..d2b5ef3 100644
--- a/base/typescript/test/inputs/json/misc/65dec.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/65dec.json/default/TopLevel.ts
@@ -170,7 +170,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -181,7 +181,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/66121.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/66121.json/default/TopLevel.ts
index 9830cd5..3226328 100644
--- a/base/typescript/test/inputs/json/misc/66121.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/66121.json/default/TopLevel.ts
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -153,7 +153,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/6617c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/6617c.json/default/TopLevel.ts
index 01ea72d..62d2159 100644
--- a/base/typescript/test/inputs/json/misc/6617c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/6617c.json/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/67c03.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/67c03.json/default/TopLevel.ts
index 078e091..5b5522e 100644
--- a/base/typescript/test/inputs/json/misc/67c03.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/67c03.json/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/68c30.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/68c30.json/default/TopLevel.ts
index 821bced..3b9320f 100644
--- a/base/typescript/test/inputs/json/misc/68c30.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/68c30.json/default/TopLevel.ts
@@ -138,7 +138,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -149,7 +149,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/6c155.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/6c155.json/default/TopLevel.ts
index fb256a3..8d20b95 100644
--- a/base/typescript/test/inputs/json/misc/6c155.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/6c155.json/default/TopLevel.ts
@@ -160,7 +160,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -171,7 +171,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/6de06.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/6de06.json/default/TopLevel.ts
index d66b8fa..de60593 100644
--- a/base/typescript/test/inputs/json/misc/6de06.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/6de06.json/default/TopLevel.ts
@@ -250,7 +250,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -261,7 +261,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/6dec6.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
index 6e2745b..82b8a2e 100644
--- a/base/typescript/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/6dec6.json/default/TopLevel.ts
@@ -207,7 +207,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -218,7 +218,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/6eb00.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/6eb00.json/default/TopLevel.ts
index 63835a1..83ec7fb 100644
--- a/base/typescript/test/inputs/json/misc/6eb00.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/6eb00.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/70c77.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/70c77.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/70c77.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/70c77.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/734ad.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/734ad.json/default/TopLevel.ts
index 7f98792..0be79a0 100644
--- a/base/typescript/test/inputs/json/misc/734ad.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/734ad.json/default/TopLevel.ts
@@ -176,7 +176,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -187,7 +187,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/75912.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/75912.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/75912.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/75912.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/7681c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/7681c.json/default/TopLevel.ts
index 2c8c3d5..cf1c9b7 100644
--- a/base/typescript/test/inputs/json/misc/7681c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/7681c.json/default/TopLevel.ts
@@ -215,7 +215,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -226,7 +226,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/76ae1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/76ae1.json/default/TopLevel.ts
index 1ff30e6..7037d82 100644
--- a/base/typescript/test/inputs/json/misc/76ae1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/76ae1.json/default/TopLevel.ts
@@ -288,7 +288,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -299,7 +299,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/77392.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/77392.json/default/TopLevel.ts
index bd1d90f..04ac300 100644
--- a/base/typescript/test/inputs/json/misc/77392.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/77392.json/default/TopLevel.ts
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -133,7 +133,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/7d397.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/7d397.json/default/TopLevel.ts
index cca1a7e..adb4d79 100644
--- a/base/typescript/test/inputs/json/misc/7d397.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/7d397.json/default/TopLevel.ts
@@ -180,7 +180,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -191,7 +191,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/7d722.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/7d722.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/7d722.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/7d722.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/7df41.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/7df41.json/default/TopLevel.ts
index 8bb0df8..1b89077 100644
--- a/base/typescript/test/inputs/json/misc/7df41.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/7df41.json/default/TopLevel.ts
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/7dfa6.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/7eb30.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/7eb30.json/default/TopLevel.ts
index a522f6b..f598add 100644
--- a/base/typescript/test/inputs/json/misc/7eb30.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/7eb30.json/default/TopLevel.ts
@@ -144,7 +144,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -155,7 +155,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/7f568.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/7f568.json/default/TopLevel.ts
index 908a330..8371870 100644
--- a/base/typescript/test/inputs/json/misc/7f568.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/7f568.json/default/TopLevel.ts
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/7fbfb.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/7fbfb.json/default/TopLevel.ts
index 6884826..61ab7ed 100644
--- a/base/typescript/test/inputs/json/misc/7fbfb.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/7fbfb.json/default/TopLevel.ts
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/80aff.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/80aff.json/default/TopLevel.ts
index 7393e16..c261cf7 100644
--- a/base/typescript/test/inputs/json/misc/80aff.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/80aff.json/default/TopLevel.ts
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -134,7 +134,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/82509.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/82509.json/default/TopLevel.ts
index 3b002b1..d2b496d 100644
--- a/base/typescript/test/inputs/json/misc/82509.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/82509.json/default/TopLevel.ts
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/8592b.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/8592b.json/default/TopLevel.ts
index b0907a4..a71a770 100644
--- a/base/typescript/test/inputs/json/misc/8592b.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/8592b.json/default/TopLevel.ts
@@ -219,7 +219,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -230,7 +230,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/88130.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/88130.json/default/TopLevel.ts
index 5e66d83..7d69fbe 100644
--- a/base/typescript/test/inputs/json/misc/88130.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/88130.json/default/TopLevel.ts
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/8a62c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/8a62c.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/908db.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/908db.json/default/TopLevel.ts
index 071e0d8..725b46a 100644
--- a/base/typescript/test/inputs/json/misc/908db.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/908db.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/9617f.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/9617f.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/9617f.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/9617f.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/96f7c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/96f7c.json/default/TopLevel.ts
index 900a451..86c55b2 100644
--- a/base/typescript/test/inputs/json/misc/96f7c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/96f7c.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/9847b.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/9847b.json/default/TopLevel.ts
index b1f7df7..80f0c60 100644
--- a/base/typescript/test/inputs/json/misc/9847b.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/9847b.json/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/9929c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/9929c.json/default/TopLevel.ts
index 5e66d83..7d69fbe 100644
--- a/base/typescript/test/inputs/json/misc/9929c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/9929c.json/default/TopLevel.ts
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/996bd.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/996bd.json/default/TopLevel.ts
index d940071..d4795e4 100644
--- a/base/typescript/test/inputs/json/misc/996bd.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/996bd.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/9a503.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/9a503.json/default/TopLevel.ts
index a7ce96f..81c828d 100644
--- a/base/typescript/test/inputs/json/misc/9a503.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/9a503.json/default/TopLevel.ts
@@ -134,7 +134,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -145,7 +145,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
index 9f4c57f..f8004a8 100644
--- a/base/typescript/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/9ac3b.json/default/TopLevel.ts
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/9eed5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/9eed5.json/default/TopLevel.ts
index f2587f8..5d5ab31 100644
--- a/base/typescript/test/inputs/json/misc/9eed5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/9eed5.json/default/TopLevel.ts
@@ -134,7 +134,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -145,7 +145,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/a0496.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/a0496.json/default/TopLevel.ts
index b1b15e4..1fe25c5 100644
--- a/base/typescript/test/inputs/json/misc/a0496.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/a0496.json/default/TopLevel.ts
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/a1eca.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
index 5e66d83..7d69fbe 100644
--- a/base/typescript/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/a1eca.json/default/TopLevel.ts
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/a3d8c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/a3d8c.json/default/TopLevel.ts
index e16a8f2..1131945 100644
--- a/base/typescript/test/inputs/json/misc/a3d8c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/a3d8c.json/default/TopLevel.ts
@@ -217,7 +217,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -228,7 +228,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/a45b0.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/a45b0.json/default/TopLevel.ts
index d624211..39e8567 100644
--- a/base/typescript/test/inputs/json/misc/a45b0.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/a45b0.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/a71df.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/a71df.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/a71df.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/a71df.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/a9691.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/a9691.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/a9691.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/a9691.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/ab0d1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/ab0d1.json/default/TopLevel.ts
index d624211..39e8567 100644
--- a/base/typescript/test/inputs/json/misc/ab0d1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/ab0d1.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/abb4b.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/abb4b.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/ac944.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/ac944.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/ac944.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/ac944.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/ad8be.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/ad8be.json/default/TopLevel.ts
index 40b751e..0b166b9 100644
--- a/base/typescript/test/inputs/json/misc/ad8be.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/ad8be.json/default/TopLevel.ts
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -158,7 +158,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/ae7f0.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/ae7f0.json/default/TopLevel.ts
index faecb0c..7bef174 100644
--- a/base/typescript/test/inputs/json/misc/ae7f0.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/ae7f0.json/default/TopLevel.ts
@@ -195,7 +195,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -206,7 +206,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/ae9ca.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/ae9ca.json/default/TopLevel.ts
index 697ca29..056f190 100644
--- a/base/typescript/test/inputs/json/misc/ae9ca.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/ae9ca.json/default/TopLevel.ts
@@ -143,7 +143,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -154,7 +154,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/af2d1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/af2d1.json/default/TopLevel.ts
index 9bb1083..8c660cf 100644
--- a/base/typescript/test/inputs/json/misc/af2d1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/af2d1.json/default/TopLevel.ts
@@ -193,7 +193,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -204,7 +204,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/b4865.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/b4865.json/default/TopLevel.ts
index 62b85c8..d7ac155 100644
--- a/base/typescript/test/inputs/json/misc/b4865.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/b4865.json/default/TopLevel.ts
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/b6f2c.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/b6fe5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/b6fe5.json/default/TopLevel.ts
index cc93842..678d2fe 100644
--- a/base/typescript/test/inputs/json/misc/b6fe5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/b6fe5.json/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/b9f64.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/b9f64.json/default/TopLevel.ts
index bff8ceb..94bd27e 100644
--- a/base/typescript/test/inputs/json/misc/b9f64.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/b9f64.json/default/TopLevel.ts
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/bb1ec.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/be234.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/be234.json/default/TopLevel.ts
index 62b7427..e56c5fc 100644
--- a/base/typescript/test/inputs/json/misc/be234.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/be234.json/default/TopLevel.ts
@@ -256,7 +256,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -267,7 +267,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/c0356.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/c0356.json/default/TopLevel.ts
index 5489e4d..7753930 100644
--- a/base/typescript/test/inputs/json/misc/c0356.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/c0356.json/default/TopLevel.ts
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/c0a3a.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/c0a3a.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/c0a3a.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/c0a3a.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/c3303.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/c3303.json/default/TopLevel.ts
index afcc259..7bf5c8c 100644
--- a/base/typescript/test/inputs/json/misc/c3303.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/c3303.json/default/TopLevel.ts
@@ -214,7 +214,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -225,7 +225,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/c6cfd.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/c6cfd.json/default/TopLevel.ts
index 766e801..5bacf4a 100644
--- a/base/typescript/test/inputs/json/misc/c6cfd.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/c6cfd.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/c8c7e.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/c8c7e.json/default/TopLevel.ts
index 6cc0632..95f6cfc 100644
--- a/base/typescript/test/inputs/json/misc/c8c7e.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/c8c7e.json/default/TopLevel.ts
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/cb0cc.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/cb0cc.json/default/TopLevel.ts
index 185febd..8268b4a 100644
--- a/base/typescript/test/inputs/json/misc/cb0cc.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/cb0cc.json/default/TopLevel.ts
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/cb81e.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/cb81e.json/default/TopLevel.ts
index 30b8696..c32a5c5 100644
--- a/base/typescript/test/inputs/json/misc/cb81e.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/cb81e.json/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/ccd18.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/ccd18.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/ccd18.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/ccd18.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/cd238.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/cd238.json/default/TopLevel.ts
index 05276b1..0bd5a14 100644
--- a/base/typescript/test/inputs/json/misc/cd238.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/cd238.json/default/TopLevel.ts
@@ -140,7 +140,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -151,7 +151,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/cd463.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/cd463.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/cd463.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/cd463.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/cda6c.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/cda6c.json/default/TopLevel.ts
index 02abac0..57ea7c3 100644
--- a/base/typescript/test/inputs/json/misc/cda6c.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/cda6c.json/default/TopLevel.ts
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
index 5e66d83..7d69fbe 100644
--- a/base/typescript/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/cf0d8.json/default/TopLevel.ts
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/cfbce.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/cfbce.json/default/TopLevel.ts
index 51c34f0..7f5763c 100644
--- a/base/typescript/test/inputs/json/misc/cfbce.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/cfbce.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/d0908.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/d0908.json/default/TopLevel.ts
index 824027c..d3377c9 100644
--- a/base/typescript/test/inputs/json/misc/d0908.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/d0908.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/d23d5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
index 20b6f90..6f46884 100644
--- a/base/typescript/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/d23d5.json/default/TopLevel.ts
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -133,7 +133,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
index b728093..c6e0493 100644
--- a/base/typescript/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/dbfb3.json/default/TopLevel.ts
@@ -207,7 +207,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -218,7 +218,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/dc44f.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
index 700fadf..4d9b0f2 100644
--- a/base/typescript/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/dc44f.json/default/TopLevel.ts
@@ -175,7 +175,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -186,7 +186,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
index 700fadf..4d9b0f2 100644
--- a/base/typescript/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/dd1ce.json/default/TopLevel.ts
@@ -175,7 +175,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -186,7 +186,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/dec3a.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/dec3a.json/default/TopLevel.ts
index 1d071df..a8a4006 100644
--- a/base/typescript/test/inputs/json/misc/dec3a.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/dec3a.json/default/TopLevel.ts
@@ -168,7 +168,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -179,7 +179,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/df957.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/df957.json/default/TopLevel.ts
index 5e66d83..7d69fbe 100644
--- a/base/typescript/test/inputs/json/misc/df957.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/df957.json/default/TopLevel.ts
@@ -205,7 +205,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -216,7 +216,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/e0ac7.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/e0ac7.json/default/TopLevel.ts
index 5f4da6f..51f31c1 100644
--- a/base/typescript/test/inputs/json/misc/e0ac7.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/e0ac7.json/default/TopLevel.ts
@@ -213,7 +213,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -224,7 +224,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/e2915.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/e2915.json/default/TopLevel.ts
index e19dd6e..580d429 100644
--- a/base/typescript/test/inputs/json/misc/e2915.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/e2915.json/default/TopLevel.ts
@@ -207,7 +207,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -218,7 +218,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/e2a58.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/e2a58.json/default/TopLevel.ts
index 88ed88f..a3179cd 100644
--- a/base/typescript/test/inputs/json/misc/e2a58.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/e2a58.json/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/e324e.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/e324e.json/default/TopLevel.ts
index b2a72cd..1718052 100644
--- a/base/typescript/test/inputs/json/misc/e324e.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/e324e.json/default/TopLevel.ts
@@ -178,7 +178,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -189,7 +189,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/e53b5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/e53b5.json/default/TopLevel.ts
index 0216fc7..7a3ba92 100644
--- a/base/typescript/test/inputs/json/misc/e53b5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/e53b5.json/default/TopLevel.ts
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -142,7 +142,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/e64a0.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/e64a0.json/default/TopLevel.ts
index 9a20499..b87f838 100644
--- a/base/typescript/test/inputs/json/misc/e64a0.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/e64a0.json/default/TopLevel.ts
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/e8a0b.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/e8a0b.json/default/TopLevel.ts
index d624211..39e8567 100644
--- a/base/typescript/test/inputs/json/misc/e8a0b.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/e8a0b.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/e8b04.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/e8b04.json/default/TopLevel.ts
index 3bc4f02..566cd11 100644
--- a/base/typescript/test/inputs/json/misc/e8b04.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/e8b04.json/default/TopLevel.ts
@@ -338,7 +338,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -349,7 +349,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/ed095.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/ed095.json/default/TopLevel.ts
index 281babf..7ba3d18 100644
--- a/base/typescript/test/inputs/json/misc/ed095.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/ed095.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/f22f5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/f22f5.json/default/TopLevel.ts
index 9c3cfa0..4740e51 100644
--- a/base/typescript/test/inputs/json/misc/f22f5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/f22f5.json/default/TopLevel.ts
@@ -193,7 +193,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -204,7 +204,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/f3139.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/f3139.json/default/TopLevel.ts
index b1f7df7..80f0c60 100644
--- a/base/typescript/test/inputs/json/misc/f3139.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/f3139.json/default/TopLevel.ts
@@ -110,7 +110,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -121,7 +121,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/f3edf.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/f3edf.json/default/TopLevel.ts
index d624211..39e8567 100644
--- a/base/typescript/test/inputs/json/misc/f3edf.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/f3edf.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/f466a.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/f466a.json/default/TopLevel.ts
index d624211..39e8567 100644
--- a/base/typescript/test/inputs/json/misc/f466a.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/f466a.json/default/TopLevel.ts
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -127,7 +127,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/f6a65.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/f6a65.json/default/TopLevel.ts
index 0388eb4..8551417 100644
--- a/base/typescript/test/inputs/json/misc/f6a65.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/f6a65.json/default/TopLevel.ts
@@ -215,7 +215,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -226,7 +226,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/f74d5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/f74d5.json/default/TopLevel.ts
index e74ebdb..21545df 100644
--- a/base/typescript/test/inputs/json/misc/f74d5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/f74d5.json/default/TopLevel.ts
@@ -217,7 +217,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -228,7 +228,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/f82d9.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/f82d9.json/default/TopLevel.ts
index e8bc876..14a8b89 100644
--- a/base/typescript/test/inputs/json/misc/f82d9.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/f82d9.json/default/TopLevel.ts
@@ -191,7 +191,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -202,7 +202,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/f974d.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/f974d.json/default/TopLevel.ts
index f045824..1b8ecff 100644
--- a/base/typescript/test/inputs/json/misc/f974d.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/f974d.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/faff5.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/faff5.json/default/TopLevel.ts
index 41f69ac..c84fabf 100644
--- a/base/typescript/test/inputs/json/misc/faff5.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/faff5.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/fcca3.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/fcca3.json/default/TopLevel.ts
index a9e8711..db1ad59 100644
--- a/base/typescript/test/inputs/json/misc/fcca3.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/fcca3.json/default/TopLevel.ts
@@ -317,7 +317,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -328,7 +328,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/misc/fd329.json/default/TopLevel.ts b/head/typescript/test/inputs/json/misc/fd329.json/default/TopLevel.ts
index 38eedf1..eed9604 100644
--- a/base/typescript/test/inputs/json/misc/fd329.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/misc/fd329.json/default/TopLevel.ts
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/blns-object.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/blns-object.json/default/TopLevel.ts
index 75c36fd..92fe20e 100644
--- a/base/typescript/test/inputs/json/priority/blns-object.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/blns-object.json/default/TopLevel.ts
@@ -702,7 +702,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -713,7 +713,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug2037.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug2037.json/default/TopLevel.ts
index b7774e3..992c586 100644
--- a/base/typescript/test/inputs/json/priority/bug2037.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug2037.json/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug2521.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug2521.json/default/TopLevel.ts
index 71bdb20..291c523 100644
--- a/base/typescript/test/inputs/json/priority/bug2521.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug2521.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug2590.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug2590.json/default/TopLevel.ts
index 6f1b3c3..83e84b5 100644
--- a/base/typescript/test/inputs/json/priority/bug2590.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug2590.json/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug2663.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug2663.json/default/TopLevel.ts
index 551b34c..7a0e0f8 100644
--- a/base/typescript/test/inputs/json/priority/bug2663.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug2663.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug2793.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug2793.json/default/TopLevel.ts
index 21337ab..4a006ba 100644
--- a/base/typescript/test/inputs/json/priority/bug2793.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug2793.json/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug427.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug427.json/default/TopLevel.ts
index ce49d3d..fb9e93a 100644
--- a/base/typescript/test/inputs/json/priority/bug427.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug427.json/default/TopLevel.ts
@@ -664,7 +664,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -675,7 +675,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug790.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug790.json/default/TopLevel.ts
index 72f464b..e09d78b 100644
--- a/base/typescript/test/inputs/json/priority/bug790.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug790.json/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug855-short.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug855-short.json/default/TopLevel.ts
index 3d18c2a..8798125 100644
--- a/base/typescript/test/inputs/json/priority/bug855-short.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug855-short.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/bug863.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/bug863.json/default/TopLevel.ts
index 1d678fc..6343730 100644
--- a/base/typescript/test/inputs/json/priority/bug863.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/bug863.json/default/TopLevel.ts
@@ -177,7 +177,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -188,7 +188,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/coin-pairs.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/coin-pairs.json/default/TopLevel.ts
index 48962b7..ab2e455 100644
--- a/base/typescript/test/inputs/json/priority/coin-pairs.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/coin-pairs.json/default/TopLevel.ts
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -130,7 +130,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
index 542710c..310e997 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/converters-all-objects--3a443babd1cb/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/converters-all-objects--3a443babd1cb/TopLevel.ts
index 405bb56..cf7f99e 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/converters-all-objects--3a443babd1cb/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/converters-all-objects--3a443babd1cb/TopLevel.ts
@@ -603,7 +603,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -614,7 +614,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/default/TopLevel.ts
index 542710c..310e997 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/default/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
index fd0686c..a0f3a59 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
index 542710c..310e997 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/prefer-types-true--df33e18681f9/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/prefer-types-true--df33e18681f9/TopLevel.ts
index c459d41..d587da0 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/prefer-types-true--df33e18681f9/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/prefer-types-true--df33e18681f9/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/prefer-unions-false--a5053c0a486d/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
index 542710c..310e997 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
index 542710c..310e997 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/raw-type-any--474b307c39db/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/raw-type-any--474b307c39db/TopLevel.ts
index 9fa0df5..92db44f 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/raw-type-any--474b307c39db/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/raw-type-any--474b307c39db/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/readonly-true--24da4fc107df/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/readonly-true--24da4fc107df/TopLevel.ts
index 77a2ff0..cb12779 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/readonly-true--24da4fc107df/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/readonly-true--24da4fc107df/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
index baa7c41..d7e70b1 100644
--- a/base/typescript/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations1.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
@@ -499,7 +499,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -510,7 +510,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
index 0cf2c61..87fafd1 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/converters-all-objects--3a443babd1cb/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/converters-all-objects--3a443babd1cb/TopLevel.ts
index 7af1f47..8c6b1ba 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/converters-all-objects--3a443babd1cb/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/converters-all-objects--3a443babd1cb/TopLevel.ts
@@ -531,7 +531,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -542,7 +542,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/default/TopLevel.ts
index 0cf2c61..87fafd1 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/default/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
index a998694..0152e2d 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
index 0cf2c61..87fafd1 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/prefer-types-true--df33e18681f9/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/prefer-types-true--df33e18681f9/TopLevel.ts
index dd1c517..3176c3d 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/prefer-types-true--df33e18681f9/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/prefer-types-true--df33e18681f9/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/prefer-unions-false--a5053c0a486d/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
index 0cf2c61..87fafd1 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
index 0cf2c61..87fafd1 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/raw-type-any--474b307c39db/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/raw-type-any--474b307c39db/TopLevel.ts
index 9b327ea..4823672 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/raw-type-any--474b307c39db/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/raw-type-any--474b307c39db/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/readonly-true--24da4fc107df/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/readonly-true--24da4fc107df/TopLevel.ts
index 0add202..6f13083 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/readonly-true--24da4fc107df/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/readonly-true--24da4fc107df/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
index 9ee5cc8..da25293 100644
--- a/base/typescript/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations2.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
@@ -451,7 +451,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -462,7 +462,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
index deeb945..d845dec 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/converters-all-objects--3a443babd1cb/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/converters-all-objects--3a443babd1cb/TopLevel.ts
index dca1901..953086c 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/converters-all-objects--3a443babd1cb/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/converters-all-objects--3a443babd1cb/TopLevel.ts
@@ -667,7 +667,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -678,7 +678,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/default/TopLevel.ts
index deeb945..d845dec 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/default/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
index c4ee62d..9368a95 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
index deeb945..d845dec 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/prefer-types-true--df33e18681f9/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/prefer-types-true--df33e18681f9/TopLevel.ts
index bab6e2e..139edc8 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/prefer-types-true--df33e18681f9/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/prefer-types-true--df33e18681f9/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/prefer-unions-false--a5053c0a486d/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
index deeb945..d845dec 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
index deeb945..d845dec 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/raw-type-any--474b307c39db/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/raw-type-any--474b307c39db/TopLevel.ts
index 66a975d..056e4a2 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/raw-type-any--474b307c39db/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/raw-type-any--474b307c39db/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/readonly-true--24da4fc107df/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/readonly-true--24da4fc107df/TopLevel.ts
index 9ddb448..ac0ed5f 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/readonly-true--24da4fc107df/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/readonly-true--24da4fc107df/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
index ce3c4d5..3747002 100644
--- a/base/typescript/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations3.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
@@ -555,7 +555,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -566,7 +566,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
index c743e3a..29dd5fd 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/acronym-style-pascal--d9e0c1bd777a/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/converters-all-objects--3a443babd1cb/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/converters-all-objects--3a443babd1cb/TopLevel.ts
index 32879ba..717d838 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/converters-all-objects--3a443babd1cb/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/converters-all-objects--3a443babd1cb/TopLevel.ts
@@ -753,7 +753,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -764,7 +764,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/default/TopLevel.ts
index c743e3a..29dd5fd 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/default/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
index a531c43..c7fc1ff 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/nice-property-names-true--f4d7920ee2ce/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
index c743e3a..29dd5fd 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/prefer-const-values-true--6b26e4d1265c/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/prefer-types-true--df33e18681f9/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/prefer-types-true--df33e18681f9/TopLevel.ts
index 33bfc62..df03c4c 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/prefer-types-true--df33e18681f9/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/prefer-types-true--df33e18681f9/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/prefer-unions-false--a5053c0a486d/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
index c743e3a..29dd5fd 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/prefer-unions-false--a5053c0a486d/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
index c743e3a..29dd5fd 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/prefer-unknown-false--f1ab9e45d823/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/raw-type-any--474b307c39db/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/raw-type-any--474b307c39db/TopLevel.ts
index db8aa65..83ea606 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/raw-type-any--474b307c39db/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/raw-type-any--474b307c39db/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/readonly-true--24da4fc107df/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/readonly-true--24da4fc107df/TopLevel.ts
index 095a16c..1b52301 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/readonly-true--24da4fc107df/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/readonly-true--24da4fc107df/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts b/head/typescript/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
index 95b3291..45f4e17 100644
--- a/base/typescript/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combinations4.json/runtime-typecheck-ignore-unknown-properties-true--d792c40f022e/TopLevel.ts
@@ -625,7 +625,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -636,7 +636,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = val[key];
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/combined-enum.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/combined-enum.json/default/TopLevel.ts
index 37bdf50..8611daa 100644
--- a/base/typescript/test/inputs/json/priority/combined-enum.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/combined-enum.json/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/direct-recursive.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/direct-recursive.json/default/TopLevel.ts
index 2d5cdbd..0db3830 100644
--- a/base/typescript/test/inputs/json/priority/direct-recursive.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/direct-recursive.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/empty-enum.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/empty-enum.json/default/TopLevel.ts
index 7dfc6b7..c0d1e77 100644
--- a/base/typescript/test/inputs/json/priority/empty-enum.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/empty-enum.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/identifiers.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/identifiers.json/default/TopLevel.ts
index de42c53..2013d29 100644
--- a/base/typescript/test/inputs/json/priority/identifiers.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/identifiers.json/default/TopLevel.ts
@@ -135,7 +135,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -146,7 +146,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.ts
index c8e46d4..5531920 100644
--- a/base/typescript/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/issue2680-object-array.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.ts
index 9f9b3d6..70ad9d6 100644
--- a/base/typescript/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/issue2680-scalar-array.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/keywords.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/keywords.json/default/TopLevel.ts
index a7d34bb..9df92bd 100644
--- a/base/typescript/test/inputs/json/priority/keywords.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/keywords.json/default/TopLevel.ts
@@ -1829,7 +1829,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -1840,7 +1840,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/keywords.json/prefer-types-true--df33e18681f9/TopLevel.ts b/head/typescript/test/inputs/json/priority/keywords.json/prefer-types-true--df33e18681f9/TopLevel.ts
index abeb673..736bf10 100644
--- a/base/typescript/test/inputs/json/priority/keywords.json/prefer-types-true--df33e18681f9/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/keywords.json/prefer-types-true--df33e18681f9/TopLevel.ts
@@ -1829,7 +1829,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -1840,7 +1840,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.ts
index eeab77a..c089428 100644
--- a/base/typescript/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/kotlin-enum-class-case-collision.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/list.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/list.json/default/TopLevel.ts
index 550a950..6256d22 100644
--- a/base/typescript/test/inputs/json/priority/list.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/list.json/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/name-style.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/name-style.json/default/TopLevel.ts
index 2bcc4e2..29495b7 100644
--- a/base/typescript/test/inputs/json/priority/name-style.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/name-style.json/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/nbl-stats.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/nbl-stats.json/default/TopLevel.ts
index 26d8381..6eec1bc 100644
--- a/base/typescript/test/inputs/json/priority/nbl-stats.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/nbl-stats.json/default/TopLevel.ts
@@ -384,7 +384,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -395,7 +395,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/nested-objects.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/nested-objects.json/default/TopLevel.ts
index a1b089d..64b4ccb 100644
--- a/base/typescript/test/inputs/json/priority/nested-objects.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/nested-objects.json/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/no-classes.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/no-classes.json/default/TopLevel.ts
index 111e281..500130f 100644
--- a/base/typescript/test/inputs/json/priority/no-classes.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/no-classes.json/default/TopLevel.ts
@@ -105,7 +105,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -116,7 +116,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.ts
index 53012a2..5875700 100644
--- a/base/typescript/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/nst-test-suite.json/default/TopLevel.ts
@@ -244,7 +244,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -255,7 +255,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/number-map.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/number-map.json/default/TopLevel.ts
index 5acf2f5..64d931a 100644
--- a/base/typescript/test/inputs/json/priority/number-map.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/number-map.json/default/TopLevel.ts
@@ -107,7 +107,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -118,7 +118,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/omit-empty.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/omit-empty.json/default/TopLevel.ts
index 4629d9d..7700cc4 100644
--- a/base/typescript/test/inputs/json/priority/omit-empty.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/omit-empty.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/optional-union.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/optional-union.json/default/TopLevel.ts
index ed9914b..7129831 100644
--- a/base/typescript/test/inputs/json/priority/optional-union.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/optional-union.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.ts
index 14ba2bd..6c79144 100644
--- a/base/typescript/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/php-mixed-union.json/default/TopLevel.ts
@@ -113,7 +113,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -124,7 +124,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/php-validation.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/php-validation.json/default/TopLevel.ts
index ffabdda..2bab583 100644
--- a/base/typescript/test/inputs/json/priority/php-validation.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/php-validation.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/recursive.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/recursive.json/default/TopLevel.ts
index 2c52978..7c6b8b7 100644
--- a/base/typescript/test/inputs/json/priority/recursive.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/recursive.json/default/TopLevel.ts
@@ -226,7 +226,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -237,7 +237,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.ts
index 61d8ad3..412ebc2 100644
--- a/base/typescript/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/simple-identifiers.json/default/TopLevel.ts
@@ -115,7 +115,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -126,7 +126,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.ts
index 9bf4778..e02d007 100644
--- a/base/typescript/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/union-constructor-clash.json/default/TopLevel.ts
@@ -114,7 +114,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -125,7 +125,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/unions.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/unions.json/default/TopLevel.ts
index 3f729e7..613ee28 100644
--- a/base/typescript/test/inputs/json/priority/unions.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/unions.json/default/TopLevel.ts
@@ -117,7 +117,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -128,7 +128,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/url.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/url.json/default/TopLevel.ts
index 56df2ba..f2d8eba 100644
--- a/base/typescript/test/inputs/json/priority/url.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/url.json/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/priority/uuids.json/default/TopLevel.ts b/head/typescript/test/inputs/json/priority/uuids.json/default/TopLevel.ts
index 450efa7..4d6119e 100644
--- a/base/typescript/test/inputs/json/priority/uuids.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/priority/uuids.json/default/TopLevel.ts
@@ -112,7 +112,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -123,7 +123,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.ts
index f045824..1b8ecff 100644
--- a/base/typescript/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/bitcoin-block.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/copy-with-property.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/copy-with-property.json/default/TopLevel.ts
index 2c5c49a..42c7f9f 100644
--- a/base/typescript/test/inputs/json/samples/copy-with-property.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/copy-with-property.json/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/getting-started.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/getting-started.json/default/TopLevel.ts
index 68047d4..28e8952 100644
--- a/base/typescript/test/inputs/json/samples/getting-started.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/getting-started.json/default/TopLevel.ts
@@ -108,7 +108,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -119,7 +119,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/github-events.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/github-events.json/default/TopLevel.ts
index f9be8e3..fd0f6ca 100644
--- a/base/typescript/test/inputs/json/samples/github-events.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/github-events.json/default/TopLevel.ts
@@ -393,7 +393,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -404,7 +404,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.ts
index e3ddd80..44e54d1 100644
--- a/base/typescript/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/kitchen-sink.json/default/TopLevel.ts
@@ -139,7 +139,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -150,7 +150,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/null-safe.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
index acb9d31..267ba8b 100644
--- a/base/typescript/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/null-safe.json/default/TopLevel.ts
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.ts
index 1cfdd69..b26c2a4 100644
--- a/base/typescript/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/objc-control-characters.json/default/TopLevel.ts
@@ -111,7 +111,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -122,7 +122,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/pokedex.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/pokedex.json/default/TopLevel.ts
index f442069..64a96cd 100644
--- a/base/typescript/test/inputs/json/samples/pokedex.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/pokedex.json/default/TopLevel.ts
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/pokedex.json/prefer-types-true--df33e18681f9/TopLevel.ts b/head/typescript/test/inputs/json/samples/pokedex.json/prefer-types-true--df33e18681f9/TopLevel.ts
index 871aee4..ca4c83e 100644
--- a/base/typescript/test/inputs/json/samples/pokedex.json/prefer-types-true--df33e18681f9/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/pokedex.json/prefer-types-true--df33e18681f9/TopLevel.ts
@@ -136,7 +136,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -147,7 +147,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/reddit.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/reddit.json/default/TopLevel.ts
index 49a90d6..ab3a9d9 100644
--- a/base/typescript/test/inputs/json/samples/reddit.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/reddit.json/default/TopLevel.ts
@@ -233,7 +233,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -244,7 +244,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/simple-object.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/simple-object.json/default/TopLevel.ts
index 73b065e..5b4b68c 100644
--- a/base/typescript/test/inputs/json/samples/simple-object.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/simple-object.json/default/TopLevel.ts
@@ -109,7 +109,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/spotify-album.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/spotify-album.json/default/TopLevel.ts
index e1ac35d..92ce930 100644
--- a/base/typescript/test/inputs/json/samples/spotify-album.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/spotify-album.json/default/TopLevel.ts
@@ -177,7 +177,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -188,7 +188,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.ts
index 38eedf1..eed9604 100644
--- a/base/typescript/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/us-avg-temperatures.json/default/TopLevel.ts
@@ -120,7 +120,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -131,7 +131,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
diff --git a/base/typescript/test/inputs/json/samples/us-senators.json/default/TopLevel.ts b/head/typescript/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
index dd9e267..13747bf 100644
--- a/base/typescript/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
+++ b/head/typescript/test/inputs/json/samples/us-senators.json/default/TopLevel.ts
@@ -189,7 +189,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
         if (val === null || typeof val !== "object" || Array.isArray(val)) {
             return invalidValue(l(ref || "object"), val, key, parent);
         }
-        const result: any = {};
+        const result: any = Object.create(null);
         Object.getOwnPropertyNames(props).forEach(key => {
             const prop = props[key];
             const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
@@ -200,7 +200,7 @@ function transform(val: any, typ: any, getProps: any, key: any = '', parent: any
                 result[key] = transform(val[key], additional, getProps, key, ref);
             }
         });
-        return result;
+        return Object.setPrototypeOf(result, Object.prototype);
     }
 
     if (typ === "any") return val;
