Skip to content

Commit ec0e4da

Browse files
daveflimzy
authored andcommitted
Check for fields in externalize, internalize
Check for fields before accessing first struct field in externalize and internalize functions. Fixes this bug: https://play.jsgo.io/308c189e795b573511cbc4d4606af6b0a60a065a Note: I don't have node so I can't generated the minified prelude.
1 parent 053f4cf commit ec0e4da

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

compiler/prelude/jsmapping.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,9 @@ var $externalize = function(v, t, makeWrapper) {
113113
}
114114
return searchJsObject(v.$get(), t.elem);
115115
case $kindStruct:
116+
if (t.fields.length == 0) {
117+
return noJsObject;
118+
}
116119
var f = t.fields[0];
117120
return searchJsObject(v[f.prop], f.typ);
118121
case $kindInterface:
@@ -359,6 +362,9 @@ var $internalize = function(v, t, recv, seen, makeWrapper) {
359362
case $kindPtr:
360363
return searchJsObject(t.elem);
361364
case $kindStruct:
365+
if (t.fields.length == 0) {
366+
return noJsObject;
367+
}
362368
var f = t.fields[0];
363369
var o = searchJsObject(f.typ);
364370
if (o !== noJsObject) {

0 commit comments

Comments
 (0)