Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
Rhino JavaScript Java Library Source Code
Rhino JavaScript Java Library is an open-source implementation of JavaScript
written entirely in Java.
Rhino JavaScript Java Library Source Code files are provided in binary package (rhino-1.7.14.zip).
You can also browse the source code below:
✍: FYIcenter.com
⏎ org/mozilla/javascript/HashSlotMap.java
/* -*- Mode: java; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.javascript;
import java.util.Iterator;
import java.util.LinkedHashMap;
/**
* This class implements the SlotMap interface using a java.util.HashMap. This class has more
* overhead than EmbeddedSlotMap, especially because it puts each "Slot" inside an intermediate
* object. However it is much more resistant to large number of hash collisions than EmbeddedSlotMap
* and therefore we use this implementation when an object gains a large number of properties.
*/
public class HashSlotMap implements SlotMap {
private final LinkedHashMap<Object, Slot> map = new LinkedHashMap<>();
@Override
public int size() {
return map.size();
}
@Override
public boolean isEmpty() {
return map.isEmpty();
}
@Override
public Slot query(Object key, int index) {
Object name = makeKey(key, index);
return map.get(name);
}
@Override
public Slot modify(Object key, int index, int attributes) {
Object name = makeKey(key, index);
Slot slot = map.get(name);
if (slot != null) {
return slot;
}
return createSlot(key, index, attributes);
}
@Override
public void replace(Slot oldSlot, Slot newSlot) {
Object name = makeKey(oldSlot);
map.put(name, newSlot);
}
private Slot createSlot(Object key, int index, int attributes) {
Slot newSlot = new Slot(key, index, attributes);
add(newSlot);
return newSlot;
}
@Override
public void add(Slot newSlot) {
Object name = makeKey(newSlot);
map.put(name, newSlot);
}
@Override
public void remove(Object key, int index) {
Object name = makeKey(key, index);
Slot slot = map.get(name);
if (slot != null) {
// non-configurable
if ((slot.getAttributes() & ScriptableObject.PERMANENT) != 0) {
Context cx = Context.getContext();
if (cx.isStrictMode()) {
throw ScriptRuntime.typeErrorById(
"msg.delete.property.with.configurable.false", key);
}
return;
}
map.remove(name);
}
}
@Override
public Iterator<Slot> iterator() {
return map.values().iterator();
}
private Object makeKey(Object name, int index) {
return name == null ? String.valueOf(index) : name;
}
private Object makeKey(Slot slot) {
return slot.name == null ? String.valueOf(slot.indexOrHash) : slot.name;
}
}
⏎ org/mozilla/javascript/HashSlotMap.java
Or download all of them as a single archive file:
File name: rhino-1.7.14-sources.jar File size: 1029165 bytes Release date: 2022-01-06 Download
⇒ Example code to Test rhino-runtime-1.7.14.jar
⇐ Download Rhino JavaScript Binary Package
2022-05-03, ≈102🔥, 1💬
Popular Posts:
What Is poi-5.2.3.jar? poi-5.2.3.jar is one of the JAR files for Apache POI 5.2.3, which provides an...
JDK 11 jdk.internal.le.jmod is the JMOD file for JDK 11 Internal Line Editing module. JDK 11 Interna...
What Is jtds-1.2.2.jar? jtds-1.2.2.jar is the JAR files of jTDS Java library 1.2.2, which is a JDBC ...
How to read XML document with XML Schema validation from socket connections with the socket\DelayedI...
Swingx is the SwingLabs Swing Component Extensions. JAR File Size and Download Location: File name: ...