FULL PRODUCT VERSION : java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b18) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) ADDITIONAL OS VERSION INFORMATION : Windows 7 x64 A DESCRIPTION OF THE PROBLEM : Nashorn returns 'null' when externally binded array is called with key concatenated from several strings ADDITIONAL REGRESSION INFORMATION: java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b18) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : run the script above EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - array value returned ACTUAL - null returned whithout actually calling getMember REPRODUCIBILITY : This bug can be reproduced always. ---------- BEGIN SOURCE ---------- Java: VarsAdapter is a simple AbstractJSObject binded to the javascript context as "vars" public class VarsAdapter extends AbstractJSObject { @Override public Object getMember(String name) { return name; } } javascript: var o = 6; print( '1: price_'+o); print( '2: '+vars['price_'+o]); print( '3: '+vars['price_6']); print( '4: '+vars[('price_'+o).toString()]); output: 1: price_6 2: null 3: price_6 4: price_6 line 2 is incorrect. Debugger shows that getMember is never invoked when concatenated string is used as key. ---------- END SOURCE ---------- CUSTOMER SUBMITTED WORKAROUND : use .toString() after string concatenation