Update to latest Rhino 1.7.14

...at the expense of losing, at least for now, the script editor for it (which
had been hacked into the old upstream sources in a hard-to-maintain way).

rhino-1.7.14.zip is taken from
<https://github.com/mozilla/rhino/releases/download/Rhino1_7_14_Release/rhino-1.7.14.zip>.
Building it would now use Gradle, but instead just hack together an invocation
of javac and jar in external/rhino/ExternalProject_rhino.mk that effectively
generates the same jar as the upstream-built jar available at
<https://github.com/mozilla/rhino/releases/download/Rhino1_7_14_Release/rhino-1.7.14.jar>.

All the various patches are no longer necessary:
* external/rhino/rhino1_5R5.patch and external/rhino/OfficeScriptInfo.java were
  mostly for the hacked-in script editor, which has been abandoned at least for
  now (see above).
* external/rhino/rhino1_5R5-find_swing.patch (originally from
  0a7f934650 "ause109: #i106296# make build.xml
  aware of TARFILE_LOCATION") appears to be obsolete.
* external/rhino/rhino1_5R5-updateToolTip.patch is covered by
  <ab20a73b16>
  "Fix bug 414869: Rhino debugger fails to launch due to updates in mac os x
  leopard".
* external/rhino/rhino-classpath.patch.1 from
  bb58293296 "rhino: unbreak build on Fedora 34"
  was only relevant when building with Ant.

Change-Id: I5fca5915d785716f7aaf313ff2469a20f55f707a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165190
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
This commit is contained in:
Stephan Bergmann 2024-03-22 15:53:49 +01:00
parent a0c53ab438
commit 58c4457a90
14 changed files with 363 additions and 1695 deletions

View file

@ -586,8 +586,8 @@ REVENGE_TARBALL := librevenge-0.0.$(REVENGE_VERSION_MICRO).tar.bz2
# three static lines
# so that git cherry-pick
# will not run into conflicts
RHINO_SHA256SUM := 1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753
RHINO_TARBALL := 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
RHINO_SHA256SUM := bf4d2d0c5ff8889fd494486db09291cb7965f0bf2f93ef005d3b08070a5a4f5c
RHINO_TARBALL := rhino-1.7.14.zip
# three static lines
# so that git cherry-pick
# will not run into conflicts

View file

@ -11,6 +11,6 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,rhino,rhino))
$(eval $(call gb_ExternalPackage_use_external_project,rhino,rhino))
$(eval $(call gb_ExternalPackage_add_file,rhino,$(LIBO_SHARE_JAVA_FOLDER)/js.jar,build/rhino1_5R5/js.jar))
$(eval $(call gb_ExternalPackage_add_file,rhino,$(LIBO_SHARE_JAVA_FOLDER)/js.jar,build/js.jar))
# vim: set noet sw=4 ts=4:

View file

@ -16,16 +16,32 @@ $(eval $(call gb_ExternalProject_register_targets,rhino,\
$(call gb_ExternalProject_get_state_target,rhino,build) :
$(call gb_Trace_StartRange,rhino,EXTERNAL)
$(call gb_ExternalProject_run,build,\
JAVA_HOME=$(JAVA_HOME_FOR_BUILD) \
$(ICECREAM_RUN) "$(ANT)" \
$(if $(verbose),-v,-q) \
-f build.xml \
-Dbuild.label="build-$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)" \
-DTARFILE_LOCATION="$(if $(findstring -cygwin,$(BUILD_PLATFORM)),$(shell cygpath -m $(TARFILE_LOCATION)),$(TARFILE_LOCATION))" \
-Dant.build.javac.source=$(JAVA_SOURCE_VER) \
-Dant.build.javac.target=$(JAVA_TARGET_VER) \
$(if $(debug),-Dbuild.debug="on") \
jar \
mkdir $(call gb_UnpackedTarball_get_dir,rhino)/build \
&& cd $(call gb_UnpackedTarball_get_dir,rhino) \
&& $(call gb_JavaClassSet_JAVACCOMMAND,$(JAVA_TARGET_VER)) $(gb_JavaClassSet_JAVACDEBUG) \
-d $(call gb_UnpackedTarball_get_dir,rhino)/build/content \
@$(SRCDIR)/external/rhino/filelist.txt \
&& mkdir $(call gb_UnpackedTarball_get_dir,rhino)/build/content/META-INF \
&& cp $(call gb_UnpackedTarball_get_dir,rhino)/LICENSE.txt \
$(call gb_UnpackedTarball_get_dir,rhino)/NOTICE-tools.txt \
$(call gb_UnpackedTarball_get_dir,rhino)/NOTICE.txt \
$(call gb_UnpackedTarball_get_dir,rhino)/build/content/META-INF/ \
&& $(gb_Jar_JARCOMMAND) -cf $(call gb_UnpackedTarball_get_dir,rhino)/build/js.jar \
-C $(call gb_UnpackedTarball_get_dir,rhino)/build/content . \
-C $(call gb_UnpackedTarball_get_dir,rhino)/src \
org/mozilla/javascript/commonjs/module/package.html \
-C $(call gb_UnpackedTarball_get_dir,rhino)/src \
org/mozilla/javascript/commonjs/module/provider/package.html \
-C $(call gb_UnpackedTarball_get_dir,rhino)/src \
org/mozilla/javascript/resources/Messages.properties \
-C $(call gb_UnpackedTarball_get_dir,rhino)/src \
org/mozilla/javascript/resources/Messages_en.properties \
-C $(call gb_UnpackedTarball_get_dir,rhino)/src \
org/mozilla/javascript/resources/Messages_fr.properties \
-C $(call gb_UnpackedTarball_get_dir,rhino)/src \
org/mozilla/javascript/tools/debugger/test.js \
-C $(call gb_UnpackedTarball_get_dir,rhino)/src \
org/mozilla/javascript/tools/resources/Messages.properties \
)
$(call gb_Trace_EndRange,rhino,EXTERNAL)

View file

@ -1,118 +0,0 @@
/*
* This file is part of the LibreOffice project.
*
* 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/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
package org.mozilla.javascript.tools.debugger;
import java.net.URL;
import java.util.HashMap;
import org.mozilla.javascript.Scriptable;
public class OfficeScriptInfo
{
private HashMap<String, SFScriptInfo> loadedSFScripts = new HashMap<String, SFScriptInfo>();
public void addScript( URL url, Scriptable scope, Runnable closeCallback )
{
addScript( url.toString(), url, scope, closeCallback );
}
public void addScript( String key, URL url, Scriptable scope, Runnable closeCallback )
{
SFScriptInfo si = loadedSFScripts.get( key );
if ( si == null )
{
si = new SFScriptInfo();
si.url = url;
si.scope = scope;
si.closeCallback = closeCallback;
loadedSFScripts.put( key, si );
}
}
public void deleteScript( String key )
{
SFScriptInfo info = loadedSFScripts.remove( key );
if ( info != null )
{
if ( info.closeCallback != null )
{
System.out.println("** In removeSFScriptInfo have callback for " + key );
info.closeCallback.run(); // really need to do this in separate thread????
}
}
}
public Scriptable getScriptScope( String key )
{
Scriptable result = null;
SFScriptInfo info = loadedSFScripts.get( key );
if ( info != null )
{
result = info.scope;
}
return result;
}
public URL getScriptUrl( String key )
{
URL result = null;
SFScriptInfo info = loadedSFScripts.get( key );
if ( info != null )
{
result = info.url;
}
return result;
}
public boolean hasScript( String key )
{
boolean result = true;
SFScriptInfo info = loadedSFScripts.get( key );
if ( info == null )
{
result = false;
}
return result;
}
public void setScriptRunning( String key, boolean running )
{
SFScriptInfo info = loadedSFScripts.get( key );
if ( info != null )
{
info.isExecuting = running;
}
}
public boolean isScriptRunning( String key )
{
boolean result = false;
SFScriptInfo info = loadedSFScripts.get( key );
if ( info != null )
{
result = info.isExecuting;
}
return result;
}
class SFScriptInfo
{
Scriptable scope;
boolean isExecuting;
URL url;
Runnable closeCallback;
}
}

View file

@ -11,15 +11,4 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,rhino))
$(eval $(call gb_UnpackedTarball_set_tarball,rhino,$(RHINO_TARBALL),,rhino))
$(eval $(call gb_UnpackedTarball_set_patchlevel,rhino,2))
$(eval $(call gb_UnpackedTarball_add_patches,rhino,\
external/rhino/rhino1_5R5.patch \
external/rhino/rhino1_5R5-find_swing.patch \
external/rhino/rhino1_5R5-updateToolTip.patch \
external/rhino/rhino-classpath.patch.1 \
))
$(eval $(call gb_UnpackedTarball_add_file,rhino,toolsrc/org/mozilla/javascript/tools/debugger/OfficeScriptInfo.java,external/rhino/OfficeScriptInfo.java))
# vim: set noet sw=4 ts=4:

330
external/rhino/filelist.txt vendored Normal file
View file

@ -0,0 +1,330 @@
src/org/mozilla/classfile/ByteCode.java
src/org/mozilla/classfile/ClassFileField.java
src/org/mozilla/classfile/ClassFileMethod.java
src/org/mozilla/classfile/ClassFileWriter.java
src/org/mozilla/classfile/ConstantEntry.java
src/org/mozilla/classfile/ConstantPool.java
src/org/mozilla/classfile/ExceptionTableEntry.java
src/org/mozilla/classfile/FieldOrMethodRef.java
src/org/mozilla/classfile/SuperBlock.java
src/org/mozilla/classfile/TypeInfo.java
src/org/mozilla/javascript/AbstractEcmaObjectOperations.java
src/org/mozilla/javascript/AccessorSlot.java
src/org/mozilla/javascript/Arguments.java
src/org/mozilla/javascript/ArrowFunction.java
src/org/mozilla/javascript/BaseFunction.java
src/org/mozilla/javascript/BoundFunction.java
src/org/mozilla/javascript/Callable.java
src/org/mozilla/javascript/ClassCache.java
src/org/mozilla/javascript/ClassShutter.java
src/org/mozilla/javascript/CodeGenerator.java
src/org/mozilla/javascript/CompilerEnvirons.java
src/org/mozilla/javascript/ConsString.java
src/org/mozilla/javascript/ConstProperties.java
src/org/mozilla/javascript/Constructable.java
src/org/mozilla/javascript/Context.java
src/org/mozilla/javascript/ContextAction.java
src/org/mozilla/javascript/ContextFactory.java
src/org/mozilla/javascript/ContextListener.java
src/org/mozilla/javascript/ContinuationPending.java
src/org/mozilla/javascript/DToA.java
src/org/mozilla/javascript/Decompiler.java
src/org/mozilla/javascript/DefaultErrorReporter.java
src/org/mozilla/javascript/DefiningClassLoader.java
src/org/mozilla/javascript/Delegator.java
src/org/mozilla/javascript/ES6Generator.java
src/org/mozilla/javascript/ES6Iterator.java
src/org/mozilla/javascript/EcmaError.java
src/org/mozilla/javascript/EmbeddedSlotMap.java
src/org/mozilla/javascript/EqualObjectGraphs.java
src/org/mozilla/javascript/ErrorReporter.java
src/org/mozilla/javascript/Evaluator.java
src/org/mozilla/javascript/EvaluatorException.java
src/org/mozilla/javascript/ExternalArrayData.java
src/org/mozilla/javascript/Function.java
src/org/mozilla/javascript/FunctionObject.java
src/org/mozilla/javascript/GeneratedClassLoader.java
src/org/mozilla/javascript/HashSlotMap.java
src/org/mozilla/javascript/Hashtable.java
src/org/mozilla/javascript/IRFactory.java
src/org/mozilla/javascript/Icode.java
src/org/mozilla/javascript/IdFunctionCall.java
src/org/mozilla/javascript/IdFunctionObject.java
src/org/mozilla/javascript/IdFunctionObjectES6.java
src/org/mozilla/javascript/IdScriptableObject.java
src/org/mozilla/javascript/ImplementationVersion.java
src/org/mozilla/javascript/ImporterTopLevel.java
src/org/mozilla/javascript/InterfaceAdapter.java
src/org/mozilla/javascript/InterpretedFunction.java
src/org/mozilla/javascript/Interpreter.java
src/org/mozilla/javascript/InterpreterData.java
src/org/mozilla/javascript/IteratorLikeIterable.java
src/org/mozilla/javascript/JavaAdapter.java
src/org/mozilla/javascript/JavaMembers.java
src/org/mozilla/javascript/JavaMembers_jdk11.java
src/org/mozilla/javascript/JavaScriptException.java
src/org/mozilla/javascript/JavaToJSONConverters.java
src/org/mozilla/javascript/Kit.java
src/org/mozilla/javascript/LambdaConstructor.java
src/org/mozilla/javascript/LambdaFunction.java
src/org/mozilla/javascript/LambdaSlot.java
src/org/mozilla/javascript/LazilyLoadedCtor.java
src/org/mozilla/javascript/LazyLoadSlot.java
src/org/mozilla/javascript/MemberBox.java
src/org/mozilla/javascript/NativeArray.java
src/org/mozilla/javascript/NativeArrayIterator.java
src/org/mozilla/javascript/NativeBigInt.java
src/org/mozilla/javascript/NativeBoolean.java
src/org/mozilla/javascript/NativeCall.java
src/org/mozilla/javascript/NativeCallSite.java
src/org/mozilla/javascript/NativeCollectionIterator.java
src/org/mozilla/javascript/NativeContinuation.java
src/org/mozilla/javascript/NativeDate.java
src/org/mozilla/javascript/NativeError.java
src/org/mozilla/javascript/NativeFunction.java
src/org/mozilla/javascript/NativeGenerator.java
src/org/mozilla/javascript/NativeGlobal.java
src/org/mozilla/javascript/NativeIterator.java
src/org/mozilla/javascript/NativeJSON.java
src/org/mozilla/javascript/NativeJavaArray.java
src/org/mozilla/javascript/NativeJavaClass.java
src/org/mozilla/javascript/NativeJavaConstructor.java
src/org/mozilla/javascript/NativeJavaList.java
src/org/mozilla/javascript/NativeJavaMap.java
src/org/mozilla/javascript/NativeJavaMethod.java
src/org/mozilla/javascript/NativeJavaObject.java
src/org/mozilla/javascript/NativeJavaPackage.java
src/org/mozilla/javascript/NativeJavaTopPackage.java
src/org/mozilla/javascript/NativeMap.java
src/org/mozilla/javascript/NativeMath.java
src/org/mozilla/javascript/NativeNumber.java
src/org/mozilla/javascript/NativeObject.java
src/org/mozilla/javascript/NativePromise.java
src/org/mozilla/javascript/NativeScript.java
src/org/mozilla/javascript/NativeSet.java
src/org/mozilla/javascript/NativeString.java
src/org/mozilla/javascript/NativeStringIterator.java
src/org/mozilla/javascript/NativeSymbol.java
src/org/mozilla/javascript/NativeWeakMap.java
src/org/mozilla/javascript/NativeWeakSet.java
src/org/mozilla/javascript/NativeWith.java
src/org/mozilla/javascript/Node.java
src/org/mozilla/javascript/NodeTransformer.java
src/org/mozilla/javascript/ObjArray.java
src/org/mozilla/javascript/ObjToIntMap.java
src/org/mozilla/javascript/Parser.java
src/org/mozilla/javascript/PolicySecurityController.java
src/org/mozilla/javascript/Ref.java
src/org/mozilla/javascript/RefCallable.java
src/org/mozilla/javascript/RegExpProxy.java
src/org/mozilla/javascript/RhinoException.java
src/org/mozilla/javascript/RhinoSecurityManager.java
src/org/mozilla/javascript/Script.java
src/org/mozilla/javascript/ScriptRuntime.java
src/org/mozilla/javascript/ScriptRuntimeES6.java
src/org/mozilla/javascript/ScriptStackElement.java
src/org/mozilla/javascript/Scriptable.java
src/org/mozilla/javascript/ScriptableObject.java
src/org/mozilla/javascript/SecureCaller.java
src/org/mozilla/javascript/SecurityController.java
src/org/mozilla/javascript/SecurityUtilities.java
src/org/mozilla/javascript/Slot.java
src/org/mozilla/javascript/SlotMap.java
src/org/mozilla/javascript/SlotMapContainer.java
src/org/mozilla/javascript/Sorting.java
src/org/mozilla/javascript/SpecialRef.java
src/org/mozilla/javascript/StackStyle.java
src/org/mozilla/javascript/Symbol.java
src/org/mozilla/javascript/SymbolKey.java
src/org/mozilla/javascript/SymbolScriptable.java
src/org/mozilla/javascript/Synchronizer.java
src/org/mozilla/javascript/ThreadSafeSlotMapContainer.java
src/org/mozilla/javascript/Token.java
src/org/mozilla/javascript/TokenStream.java
src/org/mozilla/javascript/TopLevel.java
src/org/mozilla/javascript/UintMap.java
src/org/mozilla/javascript/Undefined.java
src/org/mozilla/javascript/UnhandledRejectionTracker.java
src/org/mozilla/javascript/UniqueTag.java
src/org/mozilla/javascript/VMBridge.java
src/org/mozilla/javascript/WrapFactory.java
src/org/mozilla/javascript/WrappedException.java
src/org/mozilla/javascript/Wrapper.java
src/org/mozilla/javascript/annotations/JSConstructor.java
src/org/mozilla/javascript/annotations/JSFunction.java
src/org/mozilla/javascript/annotations/JSGetter.java
src/org/mozilla/javascript/annotations/JSSetter.java
src/org/mozilla/javascript/annotations/JSStaticFunction.java
src/org/mozilla/javascript/ast/ArrayComprehension.java
src/org/mozilla/javascript/ast/ArrayComprehensionLoop.java
src/org/mozilla/javascript/ast/ArrayLiteral.java
src/org/mozilla/javascript/ast/Assignment.java
src/org/mozilla/javascript/ast/AstNode.java
src/org/mozilla/javascript/ast/AstRoot.java
src/org/mozilla/javascript/ast/BigIntLiteral.java
src/org/mozilla/javascript/ast/Block.java
src/org/mozilla/javascript/ast/BreakStatement.java
src/org/mozilla/javascript/ast/CatchClause.java
src/org/mozilla/javascript/ast/Comment.java
src/org/mozilla/javascript/ast/ConditionalExpression.java
src/org/mozilla/javascript/ast/ContinueStatement.java
src/org/mozilla/javascript/ast/DestructuringForm.java
src/org/mozilla/javascript/ast/DoLoop.java
src/org/mozilla/javascript/ast/ElementGet.java
src/org/mozilla/javascript/ast/EmptyExpression.java
src/org/mozilla/javascript/ast/EmptyStatement.java
src/org/mozilla/javascript/ast/ErrorCollector.java
src/org/mozilla/javascript/ast/ErrorNode.java
src/org/mozilla/javascript/ast/ExpressionStatement.java
src/org/mozilla/javascript/ast/ForInLoop.java
src/org/mozilla/javascript/ast/ForLoop.java
src/org/mozilla/javascript/ast/FunctionCall.java
src/org/mozilla/javascript/ast/FunctionNode.java
src/org/mozilla/javascript/ast/GeneratorExpression.java
src/org/mozilla/javascript/ast/GeneratorExpressionLoop.java
src/org/mozilla/javascript/ast/IdeErrorReporter.java
src/org/mozilla/javascript/ast/IfStatement.java
src/org/mozilla/javascript/ast/InfixExpression.java
src/org/mozilla/javascript/ast/Jump.java
src/org/mozilla/javascript/ast/KeywordLiteral.java
src/org/mozilla/javascript/ast/Label.java
src/org/mozilla/javascript/ast/LabeledStatement.java
src/org/mozilla/javascript/ast/LetNode.java
src/org/mozilla/javascript/ast/Loop.java
src/org/mozilla/javascript/ast/Name.java
src/org/mozilla/javascript/ast/NewExpression.java
src/org/mozilla/javascript/ast/NodeVisitor.java
src/org/mozilla/javascript/ast/NumberLiteral.java
src/org/mozilla/javascript/ast/ObjectLiteral.java
src/org/mozilla/javascript/ast/ObjectProperty.java
src/org/mozilla/javascript/ast/ParenthesizedExpression.java
src/org/mozilla/javascript/ast/ParseProblem.java
src/org/mozilla/javascript/ast/PropertyGet.java
src/org/mozilla/javascript/ast/RegExpLiteral.java
src/org/mozilla/javascript/ast/ReturnStatement.java
src/org/mozilla/javascript/ast/Scope.java
src/org/mozilla/javascript/ast/ScriptNode.java
src/org/mozilla/javascript/ast/StringLiteral.java
src/org/mozilla/javascript/ast/SwitchCase.java
src/org/mozilla/javascript/ast/SwitchStatement.java
src/org/mozilla/javascript/ast/Symbol.java
src/org/mozilla/javascript/ast/TaggedTemplateLiteral.java
src/org/mozilla/javascript/ast/TemplateCharacters.java
src/org/mozilla/javascript/ast/TemplateLiteral.java
src/org/mozilla/javascript/ast/ThrowStatement.java
src/org/mozilla/javascript/ast/TryStatement.java
src/org/mozilla/javascript/ast/UnaryExpression.java
src/org/mozilla/javascript/ast/UpdateExpression.java
src/org/mozilla/javascript/ast/VariableDeclaration.java
src/org/mozilla/javascript/ast/VariableInitializer.java
src/org/mozilla/javascript/ast/WhileLoop.java
src/org/mozilla/javascript/ast/WithStatement.java
src/org/mozilla/javascript/ast/XmlDotQuery.java
src/org/mozilla/javascript/ast/XmlElemRef.java
src/org/mozilla/javascript/ast/XmlExpression.java
src/org/mozilla/javascript/ast/XmlFragment.java
src/org/mozilla/javascript/ast/XmlLiteral.java
src/org/mozilla/javascript/ast/XmlMemberGet.java
src/org/mozilla/javascript/ast/XmlPropRef.java
src/org/mozilla/javascript/ast/XmlRef.java
src/org/mozilla/javascript/ast/XmlString.java
src/org/mozilla/javascript/ast/Yield.java
src/org/mozilla/javascript/commonjs/module/ModuleScope.java
src/org/mozilla/javascript/commonjs/module/ModuleScript.java
src/org/mozilla/javascript/commonjs/module/ModuleScriptProvider.java
src/org/mozilla/javascript/commonjs/module/Require.java
src/org/mozilla/javascript/commonjs/module/RequireBuilder.java
src/org/mozilla/javascript/commonjs/module/provider/CachingModuleScriptProviderBase.java
src/org/mozilla/javascript/commonjs/module/provider/DefaultUrlConnectionExpiryCalculator.java
src/org/mozilla/javascript/commonjs/module/provider/ModuleSource.java
src/org/mozilla/javascript/commonjs/module/provider/ModuleSourceProvider.java
src/org/mozilla/javascript/commonjs/module/provider/ModuleSourceProviderBase.java
src/org/mozilla/javascript/commonjs/module/provider/MultiModuleScriptProvider.java
src/org/mozilla/javascript/commonjs/module/provider/ParsedContentType.java
src/org/mozilla/javascript/commonjs/module/provider/SoftCachingModuleScriptProvider.java
src/org/mozilla/javascript/commonjs/module/provider/StrongCachingModuleScriptProvider.java
src/org/mozilla/javascript/commonjs/module/provider/UrlConnectionExpiryCalculator.java
src/org/mozilla/javascript/commonjs/module/provider/UrlConnectionSecurityDomainProvider.java
src/org/mozilla/javascript/commonjs/module/provider/UrlModuleSourceProvider.java
src/org/mozilla/javascript/debug/DebugFrame.java
src/org/mozilla/javascript/debug/DebuggableObject.java
src/org/mozilla/javascript/debug/DebuggableScript.java
src/org/mozilla/javascript/debug/Debugger.java
src/org/mozilla/javascript/jdk18/VMBridge_jdk18.java
src/org/mozilla/javascript/json/JsonParser.java
src/org/mozilla/javascript/optimizer/Block.java
src/org/mozilla/javascript/optimizer/BodyCodegen.java
src/org/mozilla/javascript/optimizer/ClassCompiler.java
src/org/mozilla/javascript/optimizer/Codegen.java
src/org/mozilla/javascript/optimizer/OptFunctionNode.java
src/org/mozilla/javascript/optimizer/OptRuntime.java
src/org/mozilla/javascript/optimizer/OptTransformer.java
src/org/mozilla/javascript/optimizer/Optimizer.java
src/org/mozilla/javascript/regexp/NativeRegExp.java
src/org/mozilla/javascript/regexp/NativeRegExpCallable.java
src/org/mozilla/javascript/regexp/NativeRegExpCtor.java
src/org/mozilla/javascript/regexp/NativeRegExpInstantiator.java
src/org/mozilla/javascript/regexp/RegExpImpl.java
src/org/mozilla/javascript/regexp/SubString.java
src/org/mozilla/javascript/serialize/ScriptableInputStream.java
src/org/mozilla/javascript/serialize/ScriptableOutputStream.java
src/org/mozilla/javascript/tools/SourceReader.java
src/org/mozilla/javascript/tools/ToolErrorReporter.java
src/org/mozilla/javascript/tools/debugger/Dim.java
src/org/mozilla/javascript/tools/debugger/GuiCallback.java
src/org/mozilla/javascript/tools/debugger/Main.java
src/org/mozilla/javascript/tools/debugger/ScopeProvider.java
src/org/mozilla/javascript/tools/debugger/SourceProvider.java
src/org/mozilla/javascript/tools/debugger/SwingGui.java
src/org/mozilla/javascript/tools/debugger/treetable/AbstractCellEditor.java
src/org/mozilla/javascript/tools/debugger/treetable/JTreeTable.java
src/org/mozilla/javascript/tools/debugger/treetable/TreeTableModel.java
src/org/mozilla/javascript/tools/debugger/treetable/TreeTableModelAdapter.java
src/org/mozilla/javascript/tools/jsc/Main.java
src/org/mozilla/javascript/tools/shell/ConsoleTextArea.java
src/org/mozilla/javascript/tools/shell/Environment.java
src/org/mozilla/javascript/tools/shell/Global.java
src/org/mozilla/javascript/tools/shell/JSConsole.java
src/org/mozilla/javascript/tools/shell/JavaPolicySecurity.java
src/org/mozilla/javascript/tools/shell/Main.java
src/org/mozilla/javascript/tools/shell/QuitAction.java
src/org/mozilla/javascript/tools/shell/SecurityProxy.java
src/org/mozilla/javascript/tools/shell/ShellConsole.java
src/org/mozilla/javascript/tools/shell/ShellContextFactory.java
src/org/mozilla/javascript/tools/shell/ShellLine.java
src/org/mozilla/javascript/tools/shell/Timers.java
src/org/mozilla/javascript/typedarrays/ByteIo.java
src/org/mozilla/javascript/typedarrays/Conversions.java
src/org/mozilla/javascript/typedarrays/NativeArrayBuffer.java
src/org/mozilla/javascript/typedarrays/NativeArrayBufferView.java
src/org/mozilla/javascript/typedarrays/NativeDataView.java
src/org/mozilla/javascript/typedarrays/NativeFloat32Array.java
src/org/mozilla/javascript/typedarrays/NativeFloat64Array.java
src/org/mozilla/javascript/typedarrays/NativeInt16Array.java
src/org/mozilla/javascript/typedarrays/NativeInt32Array.java
src/org/mozilla/javascript/typedarrays/NativeInt8Array.java
src/org/mozilla/javascript/typedarrays/NativeTypedArrayIterator.java
src/org/mozilla/javascript/typedarrays/NativeTypedArrayView.java
src/org/mozilla/javascript/typedarrays/NativeUint16Array.java
src/org/mozilla/javascript/typedarrays/NativeUint32Array.java
src/org/mozilla/javascript/typedarrays/NativeUint8Array.java
src/org/mozilla/javascript/typedarrays/NativeUint8ClampedArray.java
src/org/mozilla/javascript/v8dtoa/CachedPowers.java
src/org/mozilla/javascript/v8dtoa/DiyFp.java
src/org/mozilla/javascript/v8dtoa/DoubleConversion.java
src/org/mozilla/javascript/v8dtoa/DoubleHelper.java
src/org/mozilla/javascript/v8dtoa/FastDtoa.java
src/org/mozilla/javascript/v8dtoa/FastDtoaBuilder.java
src/org/mozilla/javascript/xml/XMLLib.java
src/org/mozilla/javascript/xml/XMLObject.java
src/org/mozilla/javascript/xmlimpl/Namespace.java
src/org/mozilla/javascript/xmlimpl/QName.java
src/org/mozilla/javascript/xmlimpl/XML.java
src/org/mozilla/javascript/xmlimpl/XMLCtor.java
src/org/mozilla/javascript/xmlimpl/XMLLibImpl.java
src/org/mozilla/javascript/xmlimpl/XMLList.java
src/org/mozilla/javascript/xmlimpl/XMLName.java
src/org/mozilla/javascript/xmlimpl/XMLObjectImpl.java
src/org/mozilla/javascript/xmlimpl/XMLWithScope.java
src/org/mozilla/javascript/xmlimpl/XmlNode.java
src/org/mozilla/javascript/xmlimpl/XmlProcessor.java

View file

@ -1,13 +0,0 @@
/usr/bin/ant will put dozens of jars on the classpath, including a
rhino.jar that breaks the build
--- rhino/build.xml.orig 2021-11-11 17:25:07.284267174 +0100
+++ rhino/build.xml 2021-11-11 17:25:38.689242510 +0100
@@ -33,6 +33,7 @@
<property file="apiClasses.properties"/>
<property name="docsrc.dir" value="docs"/>
<property name="dist.docsrc.dir" value="src/docs"/>
+ <property name="build.sysclasspath" value="ignore"/>
</target>
<target name="init" depends="properties">

View file

@ -1,16 +0,0 @@
--- misc/rhino1_5R5/toolsrc/build.xml 2009-10-29 18:29:46.605524507 +0100
+++ misc/build/rhino1_5R5/toolsrc/build.xml 2009-10-29 18:29:26.536908810 +0100
@@ -38,11 +38,12 @@
property="swing-ex-available"/>
</target>
+ <property name="swing_zip" value="${TARFILE_LOCATION}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip"/>
<target name="get-swing-ex" unless="swing-ex-available">
<!-- Download source from Sun's site, unzip it, remove
the files we don't need, and change the package
-->
- <unzip src="../../../../../download/swingExSrc.zip" dest="${src.debugger}"/>
+ <unzip src="${swing_zip}" dest="${src.debugger}"/>
<delete file="${src.debugger}/FileSystemModel2.java" />
<delete file="${src.debugger}/MergeSort.java" />
<delete file="${src.debugger}/TreeTableExample2.java" />

View file

@ -1,23 +0,0 @@
--- misc/rhino1_5R5/toolsrc/org/mozilla/javascript/tools/debugger/Main.java Wed Feb 23 10:25:09 2011
+++ misc/build/rhino1_5R5/toolsrc/org/mozilla/javascript/tools/debugger/Main.java Wed Feb 23 10:25:01 2011
@@ -1045,9 +1045,18 @@
} );
}
+ // Fix taken from <ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_7R2.zip>
+ // toolsrc/org/mozilla/javascript/tools/debugger/SwingGui.java:
private void updateToolTip() {
- // in case fileName is very long, try to set tool tip on frame
- Component c = getComponent(1);
+ // Try to set tool tip on frame. On macOS 10.5,
+ // the number of components is different, so try to be safe.
+ int n = getComponentCount() - 1;
+ if (n > 1) {
+ n = 1;
+ } else if (n < 0) {
+ return;
+ }
+ Component c = getComponent(n);
// this will work at least for Metal L&F
if (c != null && c instanceof JComponent) {
((JComponent)c).setToolTipText(getUrl());

File diff suppressed because it is too large Load diff

View file

@ -25,13 +25,7 @@ $(eval $(call gb_Jar_set_componentfile,ScriptProviderForJavaScript,scripting/jav
$(eval $(call gb_Jar_set_packageroot,ScriptProviderForJavaScript,com))
$(eval $(call gb_Jar_add_sourcefiles,ScriptProviderForJavaScript,\
scripting/java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript \
scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript \
))
$(eval $(call gb_Jar_add_packagefile,ScriptProviderForJavaScript,\
com/sun/star/script/framework/provider/javascript/template.js,\
$(SRCDIR)/scripting/java/com/sun/star/script/framework/provider/javascript/template.js \
))
# vim: set noet sw=4 ts=4:

View file

@ -1,319 +0,0 @@
/*
* This file is part of the LibreOffice project.
*
* 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/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
package com.sun.star.script.framework.provider.javascript;
import com.sun.star.script.framework.container.ScriptMetaData;
import com.sun.star.script.framework.log.LogUtils;
import com.sun.star.script.framework.provider.ScriptEditorBase;
import com.sun.star.script.framework.provider.SwingInvocation;
import com.sun.star.script.provider.XScriptContext;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ImporterTopLevel;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.tools.debugger.Main;
import org.mozilla.javascript.tools.debugger.ScopeProvider;
public class ScriptEditorForJavaScript extends ScriptEditorBase {
// global ScriptEditorForJavaScript instance
private static ScriptEditorForJavaScript theScriptEditorForJavaScript;
// template for JavaScript scripts
private static String JSTEMPLATE;
private static Main rhinoWindow;
private URL scriptURL;
// global list of ScriptEditors, key is [external form of URL] of file being edited
private static Map<String, ScriptEditorForJavaScript> BEING_EDITED = new
HashMap<String, ScriptEditorForJavaScript>();
static {
JSTEMPLATE = "// JavaScript script";
try {
URL url = ScriptEditorForJavaScript.class.getResource("template.js");
if (url != null) {
InputStream in = url.openStream();
StringBuilder buf = new StringBuilder();
byte[] b = new byte[1024];
int len;
while ((len = in.read(b)) != -1) {
buf.append(new String(b, 0, len));
}
in.close();
JSTEMPLATE = buf.toString();
}
} catch (IOException ioe) {
} catch (Exception e) {
}
}
/**
* Returns the global ScriptEditorForJavaScript instance.
*/
public static synchronized ScriptEditorForJavaScript getEditor() {
if (theScriptEditorForJavaScript == null) {
theScriptEditorForJavaScript = new ScriptEditorForJavaScript();
}
return theScriptEditorForJavaScript;
}
/**
* Get the ScriptEditorForJavaScript instance for this URL
*
* @param url The URL of the script source file
*
* @return The ScriptEditorForJavaScript associated with
* the given URL if one exists, otherwise null.
*/
public static ScriptEditorForJavaScript getEditor(URL url) {
synchronized (BEING_EDITED) {
return BEING_EDITED.get(url.toExternalForm());
}
}
/**
* Returns whether or not the script source being edited in this
* ScriptEditorForJavaScript has been modified
*/
public boolean isModified() {
return rhinoWindow.isModified(scriptURL);
}
/**
* Returns the text being displayed in this ScriptEditorForJavaScript
*
* @return The text displayed in this ScriptEditorForJavaScript
*/
public String getText() {
return rhinoWindow.getText(scriptURL);
}
/**
* Returns the Rhino Debugger url of this ScriptEditorForJavaScript
*
* @return The url of this ScriptEditorForJavaScript
*/
public String getURL() {
return scriptURL.toString();
}
/**
* Returns the template text for JavaScript scripts
*
* @return The template text for JavaScript scripts
*/
public String getTemplate() {
return JSTEMPLATE;
}
/**
* Returns the default extension for JavaScript scripts
*
* @return The default extension for JavaScript scripts
*/
public String getExtension() {
return "js";
}
/**
* Opens an editor window for the specified ScriptMetaData.
* If an editor window is already open for that data it will be
* moved to the front.
*
* @param context The context in which to execute the script
* @param entry The metadata describing the script
*/
public void edit(final XScriptContext context, ScriptMetaData entry) {
try {
String sUrl = entry.getParcelLocation();
if (!sUrl.endsWith("/")) {
sUrl += "/";
}
sUrl += entry.getLanguageName();
final URL url = entry.getSourceURL();
SwingInvocation.invoke(
new Runnable() {
public void run() {
synchronized (BEING_EDITED) {
ScriptEditorForJavaScript editor = BEING_EDITED.get(url.toExternalForm());
if (editor == null) {
editor = new ScriptEditorForJavaScript(context, url);
BEING_EDITED.put(url.toExternalForm(), editor);
}
}
assert rhinoWindow != null;
rhinoWindow.showScriptWindow(url);
rhinoWindow.toFront();
}
});
} catch (IOException e) {
LogUtils.DEBUG("Caught exception: " + e);
LogUtils.DEBUG(LogUtils.getTrace(e));
}
}
// Ensures that new instances of this class can only be created using
// the factory methods
private ScriptEditorForJavaScript() {
}
private ScriptEditorForJavaScript(XScriptContext context, URL url) {
setContext(context);
// Need to check that before showing the window. Checking in execute() has no effect.
if (!isMacroExecutionEnabled()) {
showErrorMessage("Macro Execution has been disabled.");
return ;
}
initUI();
Scriptable scope = getScope(context);
rhinoWindow.openFile(url, scope, new CloseHandler(url));
this.scriptURL = url;
}
/**
* Executes the script edited by the editor
*
*/
public Object execute() throws Exception {
rhinoWindow.toFront();
return rhinoWindow.runScriptWindow(scriptURL);
}
/**
* Indicates the line where error occurred
*
*/
public void indicateErrorLine(int lineNum) {
rhinoWindow.toFront();
rhinoWindow.highlighLineInScriptWindow(scriptURL, lineNum);
}
// This code is based on the main method of the Rhino Debugger Main class
// We pass in the XScriptContext in the global scope for script execution
private void initUI() {
try {
synchronized (ScriptEditorForJavaScript.class) {
if (rhinoWindow != null) {
return;
}
final Main sdb = new Main("Rhino JavaScript Debugger");
sdb.pack();
sdb.setSize(640, 640);
sdb.setVisible(true);
sdb.setExitAction(new Runnable() {
public void run() {
sdb.clearAllBreakpoints();
sdb.dispose();
shutdown();
}
});
Context.addContextListener(sdb);
sdb.setScopeProvider(new ScopeProvider() {
@Override
public Scriptable getScope() {
return org.mozilla.javascript.tools.shell.Main.getScope();
}
});
sdb.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
shutdown();
}
});
rhinoWindow = sdb;
}
} catch (Exception exc) {
LogUtils.DEBUG(LogUtils.getTrace(exc));
}
}
private void shutdown() {
// dereference Rhino Debugger window
rhinoWindow = null;
this.scriptURL = null;
// remove all scripts from BEING_EDITED
synchronized (BEING_EDITED) {
java.util.Iterator<String> iter = BEING_EDITED.keySet().iterator();
java.util.ArrayList<String> keysToRemove = new java.util.ArrayList<String>();
while (iter.hasNext()) {
String key = iter.next();
keysToRemove.add(key);
}
for (int i = 0; i < keysToRemove.size(); i++) {
BEING_EDITED.remove(keysToRemove.get(i));
}
keysToRemove = null;
}
}
private Scriptable getScope(XScriptContext xsctxt) {
Context ctxt = Context.enter();
ImporterTopLevel scope = new ImporterTopLevel(ctxt);
Scriptable jsCtxt = Context.toObject(xsctxt, scope);
scope.put("XSCRIPTCONTEXT", scope, jsCtxt);
Scriptable jsArgs = Context.toObject(new Object[0], scope);
scope.put("ARGUMENTS", scope, jsArgs);
Context.exit();
return scope;
}
private static class CloseHandler implements Runnable {
private final URL url;
private CloseHandler(URL url) {
this.url = url;
}
public void run() {
synchronized (BEING_EDITED) {
BEING_EDITED.remove(this.url.toExternalForm());
}
}
}
}

View file

@ -44,8 +44,6 @@ import com.sun.star.script.provider.XScript;
import com.sun.star.uno.XComponentContext;
import java.net.URL;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ImporterTopLevel;
import org.mozilla.javascript.JavaScriptException;
@ -78,12 +76,12 @@ public class ScriptProviderForJavaScript {
@Override
public boolean hasScriptEditor() {
return true;
return false;
}
@Override
public ScriptEditor getScriptEditor() {
return ScriptEditorForJavaScript.getEditor();
return null;
}
}
@ -198,31 +196,10 @@ class ScriptImpl implements XScript {
try {
Object result = null;
ScriptEditorForJavaScript editor =
ScriptEditorForJavaScript.getEditor(metaData.getSourceURL());
if (editor != null) {
result = editor.execute();
if (result != null &&
result.getClass().getName().equals("org.mozilla.javascript.Undefined")) {
// Always return a string
// TODO revisit
return Context.toString(result);
}
}
String source;
if (editor != null && editor.isModified()) {
LogUtils.DEBUG("GOT A MODIFIED SOURCE");
source = editor.getText();
} else {
metaData.loadSource();
source = metaData.getSource();
}
metaData.loadSource();
source = metaData.getSource();
if (source == null || source.length() == 0) {
throw new ScriptFrameworkErrorException(
@ -285,7 +262,6 @@ class ScriptImpl implements XScript {
LogUtils.DEBUG("\t lineNum " + se.lineNum);
LogUtils.DEBUG("\t language " + se.language);
LogUtils.DEBUG("\t scriptName " + se.scriptName);
raiseEditor(se.lineNum);
throw new InvocationTargetException(
"JavaScript uncaught exception" + metaData.getLanguageName(), null, se);
} catch (Exception ex) {
@ -300,31 +276,4 @@ class ScriptImpl implements XScript {
}
}
}
private void raiseEditor(int lineNum) {
try {
URL sourceUrl = metaData.getSourceURL();
ScriptEditorForJavaScript editor =
ScriptEditorForJavaScript.getEditor(sourceUrl);
if (editor == null) {
editor = ScriptEditorForJavaScript.getEditor();
editor.edit(
ScriptContext.createContext(m_xModel, m_xInvocContext,
m_xContext, m_xMultiComponentFactory),
metaData);
editor = ScriptEditorForJavaScript.getEditor(sourceUrl);
}
if (editor != null) {
System.out.println("** Have raised IDE for JavaScript, calling indicateErrorLine for line "
+ lineNum);
editor.indicateErrorLine(lineNum);
}
} catch (java.net.MalformedURLException ignore) {
}
}
}

View file

@ -1,54 +0,0 @@
/*
* This file is part of the LibreOffice project.
*
* 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/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
// Hello World in JavaScript
// Import standard OpenOffice.org API classes. For more information on
// these classes and the OpenOffice.org API, see the OpenOffice.org
// Developers Guide at:
// https://api.libreoffice.org/
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.com.sun.star.text.XTextDocument);
importClass(Packages.com.sun.star.text.XText);
importClass(Packages.com.sun.star.text.XTextRange);
importClass(Packages.com.sun.star.frame.XModel);
// Import XScriptContext class. An instance of this class is available
// to all JavaScript scripts in the global variable "XSCRIPTCONTEXT". This
// variable can be used to access the document for which this script
// was invoked.
// Methods available are:
// XSCRIPTCONTEXT.getDocument() returns XModel
// XSCRIPTCONTEXT.getInvocationContext() returns XScriptInvocationContext or NULL
// XSCRIPTCONTEXT.getDesktop() returns XDesktop
// XSCRIPTCONTEXT.getComponentContext() returns XComponentContext
// For more information on using this class see the scripting
// developer guides at:
// https://api.libreoffice.org/docs/DevelopersGuide/ScriptingFramework/ScriptingFramework.xhtml
oDoc = UnoRuntime.queryInterface(XModel,XSCRIPTCONTEXT.getInvocationContext());
if ( !oDoc )
oDoc = XSCRIPTCONTEXT.getDocument();
xTextDoc = UnoRuntime.queryInterface(XTextDocument,oDoc);
xText = xTextDoc.getText();
xTextRange = xText.getEnd();
xTextRange.setString( "Hello World (in JavaScript)" );