Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
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 (309)
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/ES6Iterator.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; public abstract class ES6Iterator extends IdScriptableObject { private static final long serialVersionUID = 2438373029140003950L; protected static void init(ScriptableObject scope, boolean sealed, IdScriptableObject prototype, String tag) { if (scope != null) { prototype.setParentScope(scope); prototype.setPrototype(getObjectPrototype(scope)); } prototype.activatePrototypeMap(MAX_PROTOTYPE_ID); if (sealed) { prototype.sealObject(); } // Need to access Iterator prototype when constructing // Iterator instances, but don't have a iterator constructor // to use to find the prototype. Use the "associateValue" // approach instead. if (scope != null) { scope.associateValue(tag, prototype); } } protected boolean exhausted = false; private String tag; protected ES6Iterator() {} protected ES6Iterator(Scriptable scope, String tag) { // Set parent and prototype properties. Since we don't have a // "Iterator" constructor in the top scope, we stash the // prototype in the top scope's associated value. this.tag = tag; Scriptable top = ScriptableObject.getTopLevelScope(scope); this.setParentScope(top); IdScriptableObject prototype = (IdScriptableObject) ScriptableObject.getTopScopeValue(top, tag); setPrototype(prototype); } @Override protected void initPrototypeId(int id) { switch (id) { case Id_next: initPrototypeMethod(getTag(), id, NEXT_METHOD, 0); return; case SymbolId_iterator: initPrototypeMethod(getTag(), id, SymbolKey.ITERATOR, "[Symbol.iterator]", DONTENUM | READONLY); return; case SymbolId_toStringTag: initPrototypeValue(SymbolId_toStringTag, SymbolKey.TO_STRING_TAG, getClassName(), DONTENUM | READONLY); return; default: throw new IllegalArgumentException(String.valueOf(id)); } } @Override public Object execIdCall(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, Object[] args) { if (!f.hasTag(getTag())) { return super.execIdCall(f, cx, scope, thisObj, args); } int id = f.methodId(); ES6Iterator iterator = ensureType(thisObj, ES6Iterator.class, f); switch (id) { case Id_next: return iterator.next(cx, scope); case SymbolId_iterator: return iterator; default: throw new IllegalArgumentException(String.valueOf(id)); } } @Override protected int findPrototypeId(Symbol k) { if (SymbolKey.ITERATOR.equals(k)) { return SymbolId_iterator; } else if (SymbolKey.TO_STRING_TAG.equals(k)) { return SymbolId_toStringTag; } return 0; } @Override protected int findPrototypeId(String s) { if (NEXT_METHOD.equals(s)) { return Id_next; } return 0; } abstract protected boolean isDone(Context cx, Scriptable scope); abstract protected Object nextValue(Context cx, Scriptable scope); protected Object next(Context cx, Scriptable scope) { Object value = Undefined.instance; boolean done = isDone(cx, scope) || this.exhausted; if (!done) { value = nextValue(cx, scope); } else { this.exhausted = true; } return makeIteratorResult(cx, scope, Boolean.valueOf(done), value); } protected String getTag() { return tag; } // 25.1.1.3 The IteratorResult Interface static Scriptable makeIteratorResult(Context cx, Scriptable scope, Boolean done) { return makeIteratorResult(cx, scope, done, Undefined.instance); } static Scriptable makeIteratorResult(Context cx, Scriptable scope, Boolean done, Object value) { final Scriptable iteratorResult = cx.newObject(scope); ScriptableObject.putProperty(iteratorResult, VALUE_PROPERTY, value); ScriptableObject.putProperty(iteratorResult, DONE_PROPERTY, done); return iteratorResult; } private static final int Id_next = 1, SymbolId_iterator = 2, SymbolId_toStringTag = 3, MAX_PROTOTYPE_ID = SymbolId_toStringTag; public static final String NEXT_METHOD = "next"; public static final String DONE_PROPERTY = "done"; public static final String RETURN_PROPERTY = "return"; public static final String VALUE_PROPERTY = "value"; public static final String RETURN_METHOD = "return"; }
⏎ org/mozilla/javascript/ES6Iterator.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, 35507👍, 1💬
Popular Posts:
Guava is a suite of core and expanded libraries that include utility classes, google's collections, ...
If you are a Java developer, it is very often that you need to use some 3rd party libraries to perfo...
What Is commons-net-ftp-2.0.jar? commons-net-ftp-2.0.jar is the JAR file for Apache Commons Net FTP ...
maven-compat-3.8.6.jar is the JAR file for Apache Maven 3.8.6 Compact module. The JAR file name may ...
Commons Pool provides an Object-pooling API, with three major aspects: 1. A generic object pool inte...