@@ -1102,17 +1102,22 @@ private AttachResult recurseAndAttach(String name, Object o, Set<Object> seen) {
1102
1102
if (o instanceof Value ) {
1103
1103
Value value = Value .asValue (o );
1104
1104
try {
1105
- if (value .canExecute () && value .isMetaObject ()) { // js function
1106
- return AttachResult .dirty (attach (value ));
1107
- } else { // anything else, including java functions and java-type references
1105
+ if (value .canExecute ()) {
1106
+ if (value .isMetaObject ()) { // js function
1107
+ return AttachResult .dirty (attach (value ));
1108
+ } else { // java function
1109
+ return AttachResult .dirty (new JsExecutable (value ));
1110
+ }
1111
+ } else { // anything else, including java-type references
1108
1112
return AttachResult .dirty (value );
1109
1113
}
1110
1114
} catch (Exception e ) {
1111
1115
logger .warn ("[*** attach ***] ignoring non-json value: '{}' - {}" , name , e .getMessage ());
1112
1116
// here we try our luck and hope that graal does not notice !
1113
1117
return AttachResult .dirty (value );
1114
1118
}
1115
- } else if (o instanceof JsFunction ) {
1119
+ }
1120
+ if (o instanceof JsFunction ) {
1116
1121
JsFunction jf = (JsFunction ) o ;
1117
1122
try {
1118
1123
return AttachResult .dirty (attachSource (jf .source ));
@@ -1320,7 +1325,7 @@ public void setVariable(String key, Object value) {
1320
1325
} else {
1321
1326
o = value ;
1322
1327
try {
1323
- v = new Variable (value );
1328
+ v = new Variable (value );
1324
1329
} catch (Exception e ) {
1325
1330
v = null ;
1326
1331
logger .warn ("[*** set variable ***] ignoring non-json value: {} - {}" , key , e .getMessage ());
0 commit comments