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/SlotMapContainer.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;
/**
* This class holds the various SlotMaps of various types, and knows how to atomically switch
* between them when we need to so that we use the right data structure at the right time.
*/
class SlotMapContainer implements SlotMap {
/**
* Once the object has this many properties in it, we will replace the EmbeddedSlotMap with
* HashSlotMap. We can adjust this parameter to balance performance for typical objects versus
* performance for huge objects with many collisions.
*/
private static final int LARGE_HASH_SIZE = 2000;
private static final int DEFAULT_SIZE = 10;
protected SlotMap map;
SlotMapContainer() {
this(DEFAULT_SIZE);
}
SlotMapContainer(int initialSize) {
if (initialSize > LARGE_HASH_SIZE) {
map = new HashSlotMap();
} else {
map = new EmbeddedSlotMap();
}
}
@Override
public int size() {
return map.size();
}
public int dirtySize() {
return map.size();
}
@Override
public boolean isEmpty() {
return map.isEmpty();
}
@Override
public Slot modify(Object key, int index, int attributes) {
checkMapSize();
return map.modify(key, index, attributes);
}
@Override
public void replace(Slot oldSlot, Slot newSlot) {
map.replace(oldSlot, newSlot);
}
@Override
public Slot query(Object key, int index) {
return map.query(key, index);
}
@Override
public void add(Slot newSlot) {
checkMapSize();
map.add(newSlot);
}
@Override
public void remove(Object key, int index) {
map.remove(key, index);
}
@Override
public Iterator<Slot> iterator() {
return map.iterator();
}
public long readLock() {
// No locking in the default implementation
return 0L;
}
public void unlockRead(long stamp) {
// No locking in the default implementation
}
/**
* Before inserting a new item in the map, check and see if we need to expand from the embedded
* map to a HashMap that is more robust against large numbers of hash collisions.
*/
protected void checkMapSize() {
if ((map instanceof EmbeddedSlotMap) && map.size() >= LARGE_HASH_SIZE) {
SlotMap newMap = new HashSlotMap();
for (Slot s : map) {
newMap.add(s);
}
map = newMap;
}
}
}
⏎ org/mozilla/javascript/SlotMapContainer.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, ≈208🔥, 1💬
Popular Posts:
JLayer is a library that decodes/plays/converts MPEG 1/2/2.5 Layer 1/2/3 (i.e. MP3) in real time for...
JDK 17 jdk.jconsole.jmod is the JMOD file for JDK 17 JConsole tool, which can be invoked by the "jco...
How to download and install ojdbc6.jar for Oracle 11g R2? ojdbc6.jar for Oracle 11g R2 is a Java 6, ...
io.jar is a component in iText Java library to provide input/output functionalities. iText Java libr...
How to download and install JDK (Java Development Kit) 1.4? If you want to write Java applications, ...