Index: mojo/public/tools/bindings/generators/js_templates/union_definition.tmpl |
diff --git a/mojo/public/tools/bindings/generators/js_templates/union_definition.tmpl b/mojo/public/tools/bindings/generators/js_templates/union_definition.tmpl |
deleted file mode 100644 |
index 3c903bc1f296686f219c66847bcef2b8256ba96b..0000000000000000000000000000000000000000 |
--- a/mojo/public/tools/bindings/generators/js_templates/union_definition.tmpl |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
-{%- macro union_def(union) %} |
-function {{union.name}}(value) { |
- this.initDefault_(); |
- this.initValue_(value); |
-} |
- |
-{{tags(union)}} |
- |
-{{union.name}}.prototype.initDefault_ = function() { |
- this.$data = null; |
- this.$tag = undefined; |
-} |
- |
-{{union.name}}.prototype.initValue_ = function(value) { |
- if (value == undefined) { |
- return; |
- } |
- |
- var keys = Object.keys(value); |
- if (keys.length == 0) { |
- return; |
- } |
- |
- if (keys.length > 1) { |
- throw new TypeError("You may set only one member on a union."); |
- } |
- |
- var fields = [ |
-{%- for field in union.fields %} |
- "{{field.name}}", |
-{%- endfor %} |
- ]; |
- |
- if (fields.indexOf(keys[0]) < 0) { |
- throw new ReferenceError(keys[0] + " is not a {{union.name}} member."); |
- |
- } |
- |
- this[keys[0]] = value[keys[0]]; |
-} |
- |
-{%- for field in union.fields %} |
-Object.defineProperty({{union.name}}.prototype, "{{field.name}}", { |
- get: function() { |
- if (this.$tag != {{union.name}}.Tags.{{field.name}}) { |
- throw new ReferenceError( |
- "{{union.name}}.{{field.name}} is not currently set."); |
- } |
- return this.$data; |
- }, |
- |
- set: function(value) { |
- this.$tag = {{union.name}}.Tags.{{field.name}}; |
- this.$data = value; |
- } |
-}); |
-{%- endfor %} |
- |
-{{encode(union)|indent(2)}} |
- |
-{{decode(union)|indent(2)}} |
- |
-{{validate(union)|indent(2)}} |
- |
-{{union.name}}.encodedSize = 16; |
-{%- endmacro %} |
- |
-{%- macro tags(union) %} |
-{{union.name}}.Tags = { |
-{%- for field in union.fields %} |
- {{field.name}}: {{field.ordinal}}, |
-{%- endfor %} |
-}; |
-{%- endmacro %} |
- |
-{%- macro encode(union) %} |
-{{union.name}}.encode = function(encoder, val) { |
- if (val == null) { |
- encoder.writeUint64(0); |
- encoder.writeUint64(0); |
- return; |
- } |
- if (val.$tag == undefined) { |
- throw new TypeError("Cannot encode unions with an unknown member set."); |
- } |
- |
- encoder.writeUint32(16); |
- encoder.writeUint32(val.$tag); |
- switch (val.$tag) { |
-{%- for field in union.fields %} |
- case {{union.name}}.Tags.{{field.name}}: |
- encoder.{{field.kind|union_encode_snippet}}val.{{field.name}}); |
- break; |
-{%- endfor %} |
- } |
- encoder.align(); |
-}; |
-{%- endmacro %} |
- |
-{%- macro decode(union) %} |
-{{union.name}}.decode = function(decoder) { |
- var size = decoder.readUint32(); |
- if (size == 0) { |
- decoder.readUint32(); |
- decoder.readUint64(); |
- return null; |
- } |
- |
- var result = new {{union.name}}(); |
- var tag = decoder.readUint32(); |
- switch (tag) { |
-{%- for field in union.fields %} |
- case {{union.name}}.Tags.{{field.name}}: |
- result.{{field.name}} = decoder.{{field.kind|union_decode_snippet}}; |
- break; |
-{%- endfor %} |
- } |
- decoder.align(); |
- |
- return result; |
-}; |
-{%- endmacro %} |
- |
-{%- from "validation_macros.tmpl" import validate_union_field %} |
-{%- macro validate(union) %} |
-{{union.name}}.validate = function(messageValidator, offset) { |
- var size = messageValidator.decodeUnionSize(offset); |
- if (size != 16) { |
- return validator.validationError.INVALID_UNION_SIZE; |
- } |
- |
- var tag = messageValidator.decodeUnionTag(offset); |
- var data_offset = offset + 8; |
- var err; |
- switch (tag) { |
-{%- for field in union.fields %} |
-{%- set name = union.name ~ '.' ~ field.name %} |
- case {{union.name}}.Tags.{{field.name}}: |
- {{validate_union_field(field, "data_offset", name)}} |
- break; |
-{%- endfor %} |
- } |
- |
- return validator.validationError.NONE; |
-}; |
-{%- endmacro %} |