Details
-
Enhancement
-
Resolution: Fixed
-
P4
-
10
-
None
-
b36
-
generic
-
generic
Description
Add a new enum value `REMOVE` to `jdk.dynalink.StandardOperation` to represent removal of a named value from an object's namespace.
Language implementers have previously observed (see http://mail.openjdk.java.net/pipermail/nashorn-dev/2016-May/006222.html) that Dynalink does not provide an operation for deleting a property of an object, or a member of a collection, something fairly common in dynamic languages (and distinct from, say, setting a property value to null). Their request to provide REMOVE as a standard operation is quite justified.
Along with defining the operation itself, BeansLinker needs to provide default REMOVE semantics for elements of Lists and Maps.
If Dynalink defined a REMOVE operation, Nashorn's implementation of JavaScript `delete` operator could also get reimplemented on top of it. (Not in scope for this issue, but a follow-up.)
Language implementers have previously observed (see http://mail.openjdk.java.net/pipermail/nashorn-dev/2016-May/006222.html) that Dynalink does not provide an operation for deleting a property of an object, or a member of a collection, something fairly common in dynamic languages (and distinct from, say, setting a property value to null). Their request to provide REMOVE as a standard operation is quite justified.
Along with defining the operation itself, BeansLinker needs to provide default REMOVE semantics for elements of Lists and Maps.
If Dynalink defined a REMOVE operation, Nashorn's implementation of JavaScript `delete` operator could also get reimplemented on top of it. (Not in scope for this issue, but a follow-up.)
Attachments
Issue Links
- csr for
-
JDK-8191906 Add a REMOVE value to jdk.dynalink.StandardOperation enum
-
- Closed
-
- relates to
-
JDK-8193371 Use Dynalink REMOVE operation in Nashorn
-
- Resolved
-
-
JDK-8332101 Add an `@since` to `StandardOperation:REMOVE` in `jdk.dynalink`
-
- Resolved
-