1.1 --- a/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java Thu Feb 06 17:44:37 2014 +0530 1.2 +++ b/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java Fri Feb 14 19:02:02 2014 +0530 1.3 @@ -25,6 +25,7 @@ 1.4 1.5 package jdk.nashorn.api.scripting; 1.6 1.7 +import java.nio.ByteBuffer; 1.8 import java.security.AccessControlContext; 1.9 import java.security.AccessController; 1.10 import java.security.Permissions; 1.11 @@ -41,6 +42,7 @@ 1.12 import java.util.Set; 1.13 import java.util.concurrent.Callable; 1.14 import javax.script.Bindings; 1.15 +import jdk.nashorn.internal.runtime.arrays.ArrayData; 1.16 import jdk.nashorn.internal.runtime.ConsString; 1.17 import jdk.nashorn.internal.runtime.Context; 1.18 import jdk.nashorn.internal.runtime.GlobalObject; 1.19 @@ -259,6 +261,22 @@ 1.20 }); 1.21 } 1.22 1.23 + /** 1.24 + * Nashorn extension: setIndexedPropertiesToExternalArrayData. 1.25 + * set indexed properties be exposed from a given nio ByteBuffer. 1.26 + * 1.27 + * @param buf external buffer - should be a nio ByteBuffer 1.28 + */ 1.29 + public void setIndexedPropertiesToExternalArrayData(final ByteBuffer buf) { 1.30 + inGlobal(new Callable<Void>() { 1.31 + @Override public Void call() { 1.32 + sobj.setArray(ArrayData.allocate(buf)); 1.33 + return null; 1.34 + } 1.35 + }); 1.36 + } 1.37 + 1.38 + 1.39 @Override 1.40 public boolean isInstance(final Object obj) { 1.41 if (! (obj instanceof ScriptObjectMirror)) {