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, ≈194🔥, 1💬
Popular Posts:
JDK 11 jdk.security.auth.jmod is the JMOD file for JDK 11 Security Auth module. JDK 11 Security Auth...
Apache Commons CLI Source Code Files are provided in the source package file commons-cli-1.5.0-sourc. ..
How to download and install Apache ZooKeeper Source Package? Apache ZooKeeper is an open-source serv...
JDK 17 java.rmi.jmod is the JMOD file for JDK 17 RMI (Remote Method Invocation) module. JDK 17 RMI m...
commons-io-2.6-sources.j aris the source JAR file for Apache Commons IO 2.6, which is a library of u...