| OLD | NEW |
| 1 {%- macro set_default(module, kind, value, depth) -%} | 1 {%- macro set_default(module, kind, value, depth) -%} |
| 2 {#--- Strings ---#} | 2 {#--- Strings ---#} |
| 3 {%- if kind|is_string_kind -%} | 3 {%- if kind|is_string_kind -%} |
| 4 {{caller(value|expression_to_text(module))}} | 4 {{caller(value|expression_to_text(module))}} |
| 5 {#--- Arrays ---#} | 5 {#--- Arrays ---#} |
| 6 {%- elif kind|is_array_kind %} | 6 {%- elif kind|is_array_kind %} |
| 7 {%- set _ = value|verify_token_type("ARRAY") %} | 7 {%- set _ = value|verify_token_type("ARRAY") %} |
| 8 { | 8 { |
| 9 var tmp{{depth}} = []; | 9 var tmp{{depth}} = []; |
| 10 {%- for element in value[1] %} | 10 {%- for element in value[1] %} |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 {%- endfor -%} | 33 {%- endfor -%} |
| 34 {{caller("tmp" ~ depth)|indent(2)}} | 34 {{caller("tmp" ~ depth)|indent(2)}} |
| 35 } | 35 } |
| 36 {#--- POD types ---#} | 36 {#--- POD types ---#} |
| 37 {%- else -%} | 37 {%- else -%} |
| 38 {{caller(value|expression_to_text(module))}} | 38 {{caller(value|expression_to_text(module))}} |
| 39 {%- endif %} | 39 {%- endif %} |
| 40 {%- endmacro %} | 40 {%- endmacro %} |
| 41 | 41 |
| 42 {#--- Begin #} | 42 {#--- Begin #} |
| 43 {#--- Enums. We must define these before the constructor because they | 43 function {{struct.name}}() { |
| 44 may be used there. Later, we alias these to be class static variables. #} | 44 this.initDefaults_(); |
| 45 } |
| 46 |
| 47 {#--- Enums #} |
| 45 {%- from "enum_definition.tmpl" import enum_def %} | 48 {%- from "enum_definition.tmpl" import enum_def %} |
| 46 {% for enum in struct.enums %} | 49 {% for enum in struct.enums %} |
| 47 var {{enum_def("%s_%s"|format(struct.name, enum.name), enum, module)}} | 50 {{enum_def("%s.%s"|format(struct.name, enum.name), enum, module)}} |
| 48 {% endfor %} | 51 {% endfor %} |
| 49 | 52 |
| 50 {#--- Constructor #} | 53 {#--- Constants #} |
| 51 function {{struct.name}}() { | 54 {% for constant in struct.constants %} |
| 55 {{struct.name}}.{{constant.name}} = {{constant.value|expression_to_text(module
)}}; |
| 56 {% endfor %} |
| 57 |
| 58 {#--- Set up defaults #} |
| 59 {{struct.name}}.prototype.initDefaults_ = function() { |
| 52 {%- for packed_field in struct.packed.packed_fields %} | 60 {%- for packed_field in struct.packed.packed_fields %} |
| 53 {%- if packed_field.field.default %} | 61 {%- if packed_field.field.default %} |
| 54 {%- filter indent(4) %} | 62 {%- filter indent(4) %} |
| 55 {%- call(result) set_default(module, packed_field.field.kind, packed_field.f
ield.default, 0) %} | 63 {%- call(result) set_default(module, packed_field.field.kind, packed_field.f
ield.default, 0) %} |
| 56 this.{{packed_field.field.name}} = {{result}}; | 64 this.{{packed_field.field.name}} = {{result}}; |
| 57 {%- endcall %} | 65 {%- endcall %} |
| 58 {%- endfilter %} | 66 {%- endfilter %} |
| 59 {%- else %} | 67 {%- else %} |
| 60 this.{{packed_field.field.name}} = {{packed_field.field|default_value}}; | 68 this.{{packed_field.field.name}} = {{packed_field.field|default_value}}; |
| 61 {%- endif %} | 69 {%- endif %} |
| 62 {%- endfor %} | 70 {%- endfor %} |
| 63 } | 71 }; |
| 64 | |
| 65 {#--- Alias any Struct_Enum enums to Struct.Enum #} | |
| 66 {% for enum in struct.enums %} | |
| 67 {{struct.name}}.{{enum.name}} = {{struct.name}}_{{enum.name}}; | |
| 68 {%- endfor %} | |
| 69 | 72 |
| 70 {#--- Encoding and decoding #} | 73 {#--- Encoding and decoding #} |
| 71 | 74 |
| 72 {{struct.name}}.encodedSize = codec.kStructHeaderSize + {{struct.packed|payloa
d_size}}; | 75 {{struct.name}}.encodedSize = codec.kStructHeaderSize + {{struct.packed|payloa
d_size}}; |
| 73 | 76 |
| 74 {{struct.name}}.decode = function(decoder) { | 77 {{struct.name}}.decode = function(decoder) { |
| 75 var packed; | 78 var packed; |
| 76 var val = new {{struct.name}}(); | 79 var val = new {{struct.name}}(); |
| 77 var numberOfBytes = decoder.readUint32(); | 80 var numberOfBytes = decoder.readUint32(); |
| 78 var numberOfFields = decoder.readUint32(); | 81 var numberOfFields = decoder.readUint32(); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 109 {%- else %} | 112 {%- else %} |
| 110 {%- for packed_field in byte.packed_fields %} | 113 {%- for packed_field in byte.packed_fields %} |
| 111 encoder.{{packed_field.field.kind|encode_snippet}}val.{{packed_field.field.n
ame}}); | 114 encoder.{{packed_field.field.kind|encode_snippet}}val.{{packed_field.field.n
ame}}); |
| 112 {%- endfor %} | 115 {%- endfor %} |
| 113 {%- endif %} | 116 {%- endif %} |
| 114 {%- if byte.is_padding %} | 117 {%- if byte.is_padding %} |
| 115 encoder.skip(1); | 118 encoder.skip(1); |
| 116 {%- endif %} | 119 {%- endif %} |
| 117 {%- endfor %} | 120 {%- endfor %} |
| 118 }; | 121 }; |
| OLD | NEW |