+def JavaScriptFieldOffset(packed_field):
+ return "offset + codec.kStructHeaderSize + %s" % packed_field.offset
+
+
+def JavaScriptNullableParam(packed_field):
+ return "true" if mojom.IsNullableKind(packed_field.field.kind) else "false"
+
+
+def JavaScriptValidateArrayParams(packed_field):
+ nullable = JavaScriptNullableParam(packed_field)
+ field_offset = JavaScriptFieldOffset(packed_field)
+ element_kind = packed_field.field.kind.kind
+ element_size = pack.PackedField.GetSizeForKind(element_kind)
+ element_count = generator.ExpectedArraySize(packed_field.field.kind)
+ element_type = "codec.PackedBool" if mojom.IsBoolKind(element_kind) \
+ else CodecType(element_kind)
+ return "%s, %s, %s, %s, %s" % \
+ (field_offset, element_size, element_count, element_type, nullable)
+
+
+def JavaScriptValidateStructParams(packed_field):
+ nullable = JavaScriptNullableParam(packed_field)
+ field_offset = JavaScriptFieldOffset(packed_field)
+ struct_type = JavaScriptType(packed_field.field.kind)
+ return "%s, %s, %s" % (field_offset, struct_type, nullable)
+
+
+def JavaScriptValidateStringParams(packed_field):
+ nullable = JavaScriptNullableParam(packed_field)
+ return "%s, %s" % (JavaScriptFieldOffset(packed_field), nullable)
+
+
+def JavaScriptValidateHandleParams(packed_field):
+ nullable = JavaScriptNullableParam(packed_field)
+ field_offset = JavaScriptFieldOffset(packed_field)
+ return "%s, %s" % (field_offset, nullable)
+
+