operations, final Object name) throws Exception {
+ private GuardedInvocationComponent getElementSetter(final ComponentLinkRequest req) throws Exception {
+ final CallSiteDescriptor callSiteDescriptor = req.descriptor;
+ final LinkerServices linkerServices = req.linkerServices;
final MethodType callSiteType = callSiteDescriptor.getMethodType();
final Class> declaredType = callSiteType.parameterType(0);
@@ -436,14 +436,14 @@
// In contrast to, say, getElementGetter, we only compute the nextComponent if the target object is not a map,
// as maps will always succeed in setting the element and will never need to fall back to the next component
// operation.
- final GuardedInvocationComponent nextComponent = collectionType == CollectionType.MAP ? null : getGuardedInvocationComponent(
- callSiteDescriptor, linkerServices, operations, name);
+ final GuardedInvocationComponent nextComponent = collectionType == CollectionType.MAP ? null : getGuardedInvocationComponent(req);
if(gic == null) {
return nextComponent;
}
// Convert the key to a number if we're working with a list or array
final Object typedName;
+ final Object name = req.name;
if(collectionType != CollectionType.MAP && name != null) {
typedName = convertKeyToInteger(name, linkerServices);
if(typedName == null) {
diff -r 354c809cd325 src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/package-info.java
--- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/package-info.java Mon Nov 02 18:47:40 2015 +0100
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/package-info.java Tue Nov 03 15:57:09 2015 +0100
@@ -83,7 +83,7 @@
/**
*
- * Dynalink is a library for dynamic linking high-level operations on objects.
+ * Dynalink is a library for dynamic linking of high-level operations on objects.
* These operations include "read a property",
* "write a property", "invoke a function" and so on. Dynalink is primarily
* useful for implementing programming languages where at least some expressions