< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java

Print this page

        

*** 1338,1347 **** --- 1338,1362 ---- setPrototypeOf(Global.objectPrototype()); } } /** + * return an array of all property keys - all inherited, non-enumerable included. + * This is meant for source code completion by interactive shells or editors. + * + * @return Array of keys, order of properties is undefined. + */ + public String[] getAllKeys() { + final Set<String> keys = new HashSet<>(); + final Set<String> nonEnumerable = new HashSet<>(); + for (ScriptObject self = this; self != null; self = self.getProto()) { + keys.addAll(Arrays.asList(self.getOwnKeys(true, nonEnumerable))); + } + return keys.toArray(new String[keys.size()]); + } + + /** * return an array of own property keys associated with the object. * * @param all True if to include non-enumerable keys. * @return Array of keys. */
< prev index next >