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 from0a7f934650
"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 frombb58293296
"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:
parent
a0c53ab438
commit
58c4457a90
14 changed files with 363 additions and 1695 deletions
|
@ -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
|
||||
|
|
2
external/rhino/ExternalPackage_rhino.mk
vendored
2
external/rhino/ExternalPackage_rhino.mk
vendored
|
@ -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:
|
||||
|
|
36
external/rhino/ExternalProject_rhino.mk
vendored
36
external/rhino/ExternalProject_rhino.mk
vendored
|
@ -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)
|
||||
|
||||
|
|
118
external/rhino/OfficeScriptInfo.java
vendored
118
external/rhino/OfficeScriptInfo.java
vendored
|
@ -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;
|
||||
}
|
||||
}
|
11
external/rhino/UnpackedTarball_rhino.mk
vendored
11
external/rhino/UnpackedTarball_rhino.mk
vendored
|
@ -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
330
external/rhino/filelist.txt
vendored
Normal 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
|
13
external/rhino/rhino-classpath.patch.1
vendored
13
external/rhino/rhino-classpath.patch.1
vendored
|
@ -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">
|
16
external/rhino/rhino1_5R5-find_swing.patch
vendored
16
external/rhino/rhino1_5R5-find_swing.patch
vendored
|
@ -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" />
|
23
external/rhino/rhino1_5R5-updateToolTip.patch
vendored
23
external/rhino/rhino1_5R5-updateToolTip.patch
vendored
|
@ -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());
|
1067
external/rhino/rhino1_5R5.patch
vendored
1067
external/rhino/rhino1_5R5.patch
vendored
File diff suppressed because it is too large
Load diff
|
@ -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:
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)" );
|
Loading…
Reference in a new issue