@@ -290,7 +290,7 @@ class {{=objectWrapper}} {
290290 {{/* Try to construct the message from a plan object of JavaScript. */ }}
291291 translator.constructFromPlanObject(this, other);
292292 }
293- this.freeze();
293+ this.freeze(/* own= */ false );
294294 }
295295
296296 {{/* Set default values if the fields of the message have. */ }}
@@ -360,7 +360,7 @@ class {{=objectWrapper}} {
360360 }
361361
362362 {{ /* Assign values to the ref object wrapped by `this`. */ }}
363- freeze(own = false ) {
363+ freeze(own) {
364364 {{~ it.spec.fields :field}}
365365 {{? field.type.isArray && field.type.isPrimitiveType && !isTypedArrayType(field.type) && field.type.isFixedSizeArray}}
366366 {{? field.type.type === 'string'}}
@@ -383,24 +383,19 @@ class {{=objectWrapper}} {
383383 {{?? field.type.isArray && field.type.isPrimitiveType && isTypedArrayType(field.type) && field.type.isFixedSizeArray}}
384384 this._refObject.{{=field.name}} = Array.from(this._wrapperFields.{{=field.name}}.data);
385385 {{?? field.type.isArray && field.type.isPrimitiveType && !isTypedArrayType(field.type)}}
386- if (!own) {
387- this._wrapperFields.{{=field.name}}.fill(this._{{=field.name}}Array);
388- this._wrapperFields.{{=field.name}}.freeze(own);
389- this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
390- } else {
386+ if (own) {
391387 this._wrapperFields.{{=field.name}}.fill([]);
392- this._wrapperFields.{{=field.name}}.freeze(own);
393- this._refObject .{{=field.name}} = this._wrapperFields. {{=field.name}}.refObject ;
388+ } else {
389+ this._wrapperFields .{{=field.name}}.fill( this._ {{=field.name}}Array) ;
394390 }
391+ this._wrapperFields.{{=field.name}}.freeze(own);
392+ this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
395393 {{?? field.type.isArray && field.type.isPrimitiveType && isTypedArrayType(field.type)}}
396- if (!own) {
397- this._wrapperFields.{{=field.name}}.freeze(own);
398- this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
399- } else {
394+ if (own) {
400395 this._wrapperFields.{{=field.name}}.fill({{=getTypedArrayName(field.type)}}.from([]));
401- this._wrapperFields.{{=field.name}}.freeze(own);
402- this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
403396 }
397+ this._wrapperFields.{{=field.name}}.freeze(own);
398+ this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
404399 {{?? field.type.isArray && !field.type.isPrimitiveType && field.type.isFixedSizeArray}}
405400 for (let i = 0; i < {{=field.type.arraySize}}; i++) {
406401 if (this._wrapperFields.{{=field.name}}.data[i]) {
@@ -409,6 +404,11 @@ class {{=objectWrapper}} {
409404 }
410405 }
411406 {{?? field.type.isArray || !field.type.isPrimitiveType}}
407+ {{? field.type.isArray}}
408+ if (own) {
409+ this._wrapperFields.{{=field.name}}.fill([]);
410+ }
411+ {{?}}
412412 this._wrapperFields.{{=field.name}}.freeze(own);
413413 this._refObject.{{=field.name}} = this._wrapperFields.{{=field.name}}.refObject;
414414 {{?? field.type.type === 'string' && it.spec.msgName !== 'String'}}
0 commit comments