diff options
author | Stephan Bergmann <stephan.bergmann@allotropia.de> | 2024-03-22 15:53:49 +0100 |
---|---|---|
committer | Stephan Bergmann <stephan.bergmann@allotropia.de> | 2024-04-02 18:56:13 +0200 |
commit | 58c4457a902c846229dc3383cc31bbc8f4b3aed9 (patch) | |
tree | e378f7553ea6ab2daf4e0a7e8b9767fbb0b9c9db /external | |
parent | a0c53ab43840d1c84d7d246b2cbc73c3a8862155 (diff) |
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
0a7f9346503a557f583bced269655fa1996550af "ause109: #i106296# make build.xml
aware of TARFILE_LOCATION") appears to be obsolete.
* external/rhino/rhino1_5R5-updateToolTip.patch is covered by
<https://github.com/mozilla/rhino/commit/ab20a73b16f68daf715c7ac4808c119bb15d698c>
"Fix bug 414869: Rhino debugger fails to launch due to updates in mac os x
leopard".
* external/rhino/rhino-classpath.patch.1 from
bb58293296f843654045d7b0eba6899d11533a4a "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>
Diffstat (limited to 'external')
-rw-r--r-- | external/rhino/ExternalPackage_rhino.mk | 2 | ||||
-rw-r--r-- | external/rhino/ExternalProject_rhino.mk | 36 | ||||
-rw-r--r-- | external/rhino/OfficeScriptInfo.java | 118 | ||||
-rw-r--r-- | external/rhino/UnpackedTarball_rhino.mk | 11 | ||||
-rw-r--r-- | external/rhino/filelist.txt | 330 | ||||
-rw-r--r-- | external/rhino/rhino-classpath.patch.1 | 13 | ||||
-rw-r--r-- | external/rhino/rhino1_5R5-find_swing.patch | 16 | ||||
-rw-r--r-- | external/rhino/rhino1_5R5-updateToolTip.patch | 23 | ||||
-rw-r--r-- | external/rhino/rhino1_5R5.patch | 1067 |
9 files changed, 357 insertions, 1259 deletions
diff --git a/external/rhino/ExternalPackage_rhino.mk b/external/rhino/ExternalPackage_rhino.mk index 0ee1d60e309d..faac15c6978e 100644 --- a/external/rhino/ExternalPackage_rhino.mk +++ b/external/rhino/ExternalPackage_rhino.mk @@ -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: diff --git a/external/rhino/ExternalProject_rhino.mk b/external/rhino/ExternalProject_rhino.mk index 6ef30ca34f24..3df0aaa4e2d9 100644 --- a/external/rhino/ExternalProject_rhino.mk +++ b/external/rhino/ExternalProject_rhino.mk @@ -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) diff --git a/external/rhino/OfficeScriptInfo.java b/external/rhino/OfficeScriptInfo.java deleted file mode 100644 index eb1d78641d23..000000000000 --- a/external/rhino/OfficeScriptInfo.java +++ /dev/null @@ -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; - } -} diff --git a/external/rhino/UnpackedTarball_rhino.mk b/external/rhino/UnpackedTarball_rhino.mk index 15a596eb1b0f..8cb9fd387384 100644 --- a/external/rhino/UnpackedTarball_rhino.mk +++ b/external/rhino/UnpackedTarball_rhino.mk @@ -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: diff --git a/external/rhino/filelist.txt b/external/rhino/filelist.txt new file mode 100644 index 000000000000..9ded7087e132 --- /dev/null +++ b/external/rhino/filelist.txt @@ -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 diff --git a/external/rhino/rhino-classpath.patch.1 b/external/rhino/rhino-classpath.patch.1 deleted file mode 100644 index c751b95b5d9b..000000000000 --- a/external/rhino/rhino-classpath.patch.1 +++ /dev/null @@ -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"> diff --git a/external/rhino/rhino1_5R5-find_swing.patch b/external/rhino/rhino1_5R5-find_swing.patch deleted file mode 100644 index 905336eb1b0d..000000000000 --- a/external/rhino/rhino1_5R5-find_swing.patch +++ /dev/null @@ -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" /> diff --git a/external/rhino/rhino1_5R5-updateToolTip.patch b/external/rhino/rhino1_5R5-updateToolTip.patch deleted file mode 100644 index be0700daf6c5..000000000000 --- a/external/rhino/rhino1_5R5-updateToolTip.patch +++ /dev/null @@ -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()); diff --git a/external/rhino/rhino1_5R5.patch b/external/rhino/rhino1_5R5.patch deleted file mode 100644 index 40fc6cc9427b..000000000000 --- a/external/rhino/rhino1_5R5.patch +++ /dev/null @@ -1,1067 +0,0 @@ ---- misc/rhino1_5R5/src/org/mozilla/javascript/DefiningClassLoader.java Thu Mar 25 21:54:34 2004 -+++ misc/build/rhino1_5R5/src/org/mozilla/javascript/DefiningClassLoader.java Fri Mar 28 17:24:23 2008 -@@ -38,6 +38,7 @@ - package org.mozilla.javascript; - - import java.lang.reflect.Method; -+import java.lang.reflect.InvocationTargetException; - - /** - * Load generated classes. -@@ -48,11 +49,34 @@ - implements GeneratedClassLoader - { - public DefiningClassLoader() { -- this.parentLoader = getClass().getClassLoader(); -+ init(getClass().getClassLoader()); - } - - public DefiningClassLoader(ClassLoader parentLoader) { -+ -+ init(parentLoader); -+ } -+ -+ private void init(ClassLoader parentLoader) { -+ - this.parentLoader = parentLoader; -+ -+ this.contextLoader = null; -+ if (method_getContextClassLoader != null) { -+ try { -+ this.contextLoader = (ClassLoader) -+ method_getContextClassLoader.invoke( -+ Thread.currentThread(), -+ ScriptRuntime.emptyArgs); -+ } catch (IllegalAccessException ex) { -+ } catch (InvocationTargetException ex) { -+ } catch (SecurityException ex) { -+ } -+ if (this.contextLoader == this.parentLoader) { -+ this.contextLoader = null; -+ } -+ } -+ - } - - public Class defineClass(String name, byte[] data) { -@@ -68,10 +92,20 @@ - { - Class cl = findLoadedClass(name); - if (cl == null) { -- if (parentLoader != null) { -- cl = parentLoader.loadClass(name); -+ // First try parent class loader and if that does not work, try -+ // contextLoader, but that will be null if -+ // Thread.getContextClassLoader() == parentLoader -+ // or on JDK 1.1 due to lack Thread.getContextClassLoader(). -+ // To avoid catching and rethrowing ClassNotFoundException -+ // in this cases, use try/catch check only if contextLoader != null. -+ if (contextLoader == null) { -+ cl = loadFromParent(name); - } else { -- cl = findSystemClass(name); -+ try { -+ cl = loadFromParent(name); -+ } catch (ClassNotFoundException ex) { -+ cl = contextLoader.loadClass(name); -+ } - } - } - if (resolve) { -@@ -80,5 +114,37 @@ - return cl; - } - -+ private Class loadFromParent(String name) -+ throws ClassNotFoundException -+ { -+ if (parentLoader != null) { -+ return parentLoader.loadClass(name); -+ } else { -+ return findSystemClass(name); -+ } -+ -+ } -+ - private ClassLoader parentLoader; -+ -+ private ClassLoader contextLoader; -+ -+ // We'd like to use "Thread.getContextClassLoader", but -+ // that's only available on Java2. -+ private static Method method_getContextClassLoader; -+ -+ static { -+ try { -+ // Don't use "Thread.class": that performs the lookup -+ // in the class initializer, which doesn't allow us to -+ // catch possible security exceptions. -+ Class threadClass = Class.forName("java.lang.Thread"); -+ method_getContextClassLoader = -+ threadClass.getDeclaredMethod("getContextClassLoader", -+ new Class[0]); -+ } catch (ClassNotFoundException e) { -+ } catch (NoSuchMethodException e) { -+ } catch (SecurityException e) { -+ } -+ } - } ---- misc/rhino1_5R5/toolsrc/build.xml 2004-03-25 21:54:34.000000000 +0100 -+++ misc/build/rhino1_5R5/toolsrc/build.xml 2009-01-17 20:46:44.000000000 +0100 -@@ -6,6 +6,28 @@ - --> - <project name="toolsrc" default="compile" basedir="."> - -+ <condition property="boot_refID" value="macPath" else="nonMacPath"> -+ <and> -+ <os family="mac"/> -+ <os family="unix"/> -+ <or> -+ <equals arg1="${ant.java.version}" arg2="1.5"/> -+ <equals arg1="${ant.java.version}" arg2="1.6"/> -+ </or> -+ </and> -+ </condition> -+ <path id="macPath" location="${java.home}/../Classes/classes.jar"/> -+ <!-- rhino.jar from OpenJDK breaks build --> -+ <path id="nonMacPath"> -+ <fileset dir="${java.home}/"> -+ <include name="jre/lib/*.jar"/> -+ <include name="lib/*.jar"/> -+ <exclude name="jre/lib/rhino.jar"/> -+ <exclude name="lib/rhino.jar"/> -+ </fileset> -+ </path> -+ <path id="my.bootstrap.classpath" refID="${boot_refID}"/> -+ - <target name="properties"> - <property name="nest" value=".."/> - <property name="build.dir" value="./build"/> -@@ -20,46 +42,10 @@ - <!-- Download source from Sun's site, unzip it, remove - the files we don't need, and change the package - --> -- <get src="http://java.sun.com/products/jfc/tsc/articles/treetable2/downloads/src.zip" dest="${nest}/${build.dir}/swingExSrc.zip"/> -- <unzip src="${nest}/${build.dir}/swingExSrc.zip" dest="${src.debugger}"/> -+ <unzip src="../../../../../download/swingExSrc.zip" dest="${src.debugger}"/> - <delete file="${src.debugger}/FileSystemModel2.java" /> - <delete file="${src.debugger}/MergeSort.java" /> - <delete file="${src.debugger}/TreeTableExample2.java" /> -- <replace file="${src.debugger}/AbstractCellEditor.java"> -- <replacetoken>import java.awt.Component;</replacetoken> -- <replacevalue> -- package org.mozilla.javascript.tools.debugger; -- import java.awt.Component; -- </replacevalue> -- </replace> -- <replace file="${src.debugger}/AbstractTreeTableModel.java"> -- <replacetoken>import javax.swing.tree.*;</replacetoken> -- <replacevalue> -- package org.mozilla.javascript.tools.debugger; -- import javax.swing.tree.*; -- </replacevalue> -- </replace> -- <replace file="${src.debugger}/JTreeTable.java"> -- <replacetoken>import javax.swing.*;</replacetoken> -- <replacevalue> -- package org.mozilla.javascript.tools.debugger; -- import javax.swing.*; -- </replacevalue> -- </replace> -- <replace file="${src.debugger}/TreeTableModel.java"> -- <replacetoken>import javax.swing.tree.TreeModel;</replacetoken> -- <replacevalue> -- package org.mozilla.javascript.tools.debugger; -- import javax.swing.tree.TreeModel; -- </replacevalue> -- </replace> -- <replace file="${src.debugger}/TreeTableModelAdapter.java"> -- <replacetoken>import javax.swing.JTree;</replacetoken> -- <replacevalue> -- package org.mozilla.javascript.tools.debugger; -- import javax.swing.JTree; -- </replacevalue> -- </replace> - </target> - - <target name="compile" depends="properties,get-swing-ex"> ---- misc/rhino1_5R5/toolsrc/org/mozilla/javascript/tools/debugger/Main.java 2004-03-25 21:54:34.000000000 +0100 -+++ misc/build/rhino1_5R5/toolsrc/org/mozilla/javascript/tools/debugger/Main.java 2009-01-17 20:44:22.000000000 +0100 -@@ -470,15 +470,21 @@ - case KeyEvent.VK_BACK_SPACE: - case KeyEvent.VK_ENTER: - case KeyEvent.VK_DELETE: -+ if (w.isEditable() == false) { - e.consume(); -+ } - break; - } - } - public void keyTyped(KeyEvent e) { -+ if (w.isEditable() == false) { - e.consume(); -+ } - } - public void keyReleased(KeyEvent e) { -+ if (w.isEditable() == false) { - e.consume(); -+ } - } - } - -@@ -879,7 +885,7 @@ - } - }; - --class FileWindow extends JInternalFrame implements ActionListener { -+class FileWindow extends JInternalFrame implements ActionListener, DocumentListener { - - Main db; - SourceInfo sourceInfo; -@@ -888,15 +894,16 @@ - JScrollPane p; - int currentPos; - JLabel statusBar; -+ boolean isModified = false; - - public void actionPerformed(ActionEvent e) { - String cmd = e.getActionCommand(); - if (cmd.equals("Cut")) { -- // textArea.cut(); -+ textArea.cut(); - } else if (cmd.equals("Copy")) { - textArea.copy(); - } else if (cmd.equals("Paste")) { -- // textArea.paste(); -+ textArea.paste(); - } - } - -@@ -910,17 +917,73 @@ - } - - void load() { -- Scriptable scope = db.getScope(); -+ //Scriptable scope = db.getScope(); -+ Scriptable scope = db.officeScripts.getScriptScope( getUrl() ); -+ if ( scope == null ) -+ { -+ scope = db.getScope(); -+ } - if (scope == null) { - MessageDialogWrapper.showMessageDialog(db, "Can't load scripts: no scope available", "Run", JOptionPane.ERROR_MESSAGE); - } else { - String url = getUrl(); - if (url != null) { -- new Thread(new LoadFile(db,scope,url)).start(); -+ new Thread(new LoadFile(db,scope, url, new StringReader(textArea.getText()))).start(); - } - } - } - -+ void save() { -+ if (getUrl() != null) { -+ OutputStream os = null; -+ try { -+ if ( getUrl().startsWith("vnd.sun.star") ) -+ { -+ URL scriptUrl = db.officeScripts.getScriptUrl( getUrl() ); -+ if ( scriptUrl == null ) -+ { -+ throw new IOException("Can't optain stream for " + getUrl() ); -+ } -+ os = scriptUrl.openConnection().getOutputStream(); -+ } -+ else -+ { -+ os = new FileOutputStream( getUrl() ); -+ } -+ String s = textArea.getText(); -+ os.write(s.getBytes(), 0, s.length()); -+ -+ this.isModified = false; -+ } -+ catch (IOException ioe) { -+ JOptionPane.showMessageDialog(this, -+ "Error saving file: " + ioe.getMessage(), -+ "Error", JOptionPane.ERROR_MESSAGE); -+ } -+ finally -+ { -+ if ( os != null ) -+ { -+ try -+ { -+ os.close(); -+ os = null; -+ } -+ catch( IOException ioe ) -+ { -+ System.err.println("Error closing stream: " + ioe.getMessage() ); -+ ioe.printStackTrace(); -+ } -+ } -+ } -+ } -+ } -+ -+ public boolean isEditable() { -+ return db.isSourceEditingEnabled(); -+ } -+ -+ - public int getPosition(int line) { - int result = -1; - try { -@@ -953,7 +1016,7 @@ - fileHeader.repaint(); - } - } -- -+ public Main getDB() { return db; } - FileWindow(Main db, SourceInfo sourceInfo) { - super(SourceInfo.getShortName(sourceInfo.getUrl()), - true, true, true, true); -@@ -972,6 +1035,14 @@ - pack(); - updateText(); - textArea.select(0); -+ addInternalFrameListener( new InternalFrameAdapter() { -+ public void internalFrameClosed(InternalFrameEvent e) { -+ // clean up scriptItems and sourceNames hashes -+ getDB().removeScript( getUrl() ); -+ // remove scripts for officeScripts -+ getDB().officeScripts.deleteScript( getUrl() ); -+ } -+ } ); - } - - private void updateToolTip() { -@@ -990,7 +1061,10 @@ - void updateText() { - String newText = sourceInfo.getSource(); - if (!textArea.getText().equals(newText)) { -+ textArea.getDocument().removeDocumentListener(this); - textArea.setText(newText); -+ this.isModified = false; -+ textArea.getDocument().addDocumentListener(this); - int pos = 0; - if (currentPos != -1) { - pos = currentPos; -@@ -1001,6 +1075,31 @@ - fileHeader.repaint(); - } - -+ /* Implementation of DocumentListener interface */ -+ public void insertUpdate(DocumentEvent e) { -+ doChanged(e); -+ } -+ -+ public void removeUpdate(DocumentEvent e) { -+ doChanged(e); -+ } -+ -+ public void changedUpdate(DocumentEvent e) { -+ doChanged(e); -+ } -+ -+ public void doChanged(DocumentEvent e) { -+ this.isModified = true; -+ } -+ -+ public boolean isModified() { -+ return this.isModified; -+ } -+ -+ public String getText() { -+ return textArea.getText(); -+ } -+ - void setPosition(int pos) { - textArea.select(pos); - currentPos = pos; -@@ -1618,7 +1717,7 @@ - if (line != -1) { - db.currentWindow = w; - } -- db.menubar.addFile(url); -+ // db.menubar.addFile(url); - w.setVisible(true); - if (activate) { - try { -@@ -1752,8 +1851,10 @@ - Menubar(Main db) { - super(); - this.db = db; -- String[] fileItems = {"Open...", "Run...", "", "Exit"}; -- String[] fileCmds = {"Open", "Load", "", "Exit"}; -+ // String[] fileItems = {"Open...", "Run...", "", "Exit"}; -+ // String[] fileCmds = {"Open", "Load", "", "Exit"}; -+ String[] fileItems = {"Run", "Save", "", "Exit"}; -+ String[] fileCmds = {"Run", "Save", "", "Exit"}; - char[] fileShortCuts = {'0', 'N', '\0', 'X'}; - int[] fileAccelerators = {KeyEvent.VK_O, - KeyEvent.VK_N, -@@ -1795,6 +1896,9 @@ - KeyStroke k = KeyStroke.getKeyStroke(fileAccelerators[i], Event.CTRL_MASK); - item.setAccelerator(k); - } -+ if (fileItems[i].equals("Save")) { -+ saveItem = item; -+ } - } - } - for (int i = 0; i < editItems.length; ++i) { -@@ -1849,9 +1953,9 @@ - item.addActionListener(this); - windowMenu.add(item = new JMenuItem("Tile", 'T')); - item.addActionListener(this); -- windowMenu.addSeparator(); -- windowMenu.add(item = new JMenuItem("Console", 'C')); -- item.addActionListener(this); -+// windowMenu.addSeparator(); -+// windowMenu.add(item = new JMenuItem("Console", 'C')); -+// item.addActionListener(this); - add(windowMenu); - - } -@@ -1925,11 +2029,16 @@ - item.addActionListener(this); - } - -+ public void setSaveEnabled(boolean state) { -+ saveItem.setEnabled(state); -+ } -+ - Main db; - JMenu windowMenu; - JCheckBoxMenuItem breakOnExceptions; - JCheckBoxMenuItem breakOnEnter; - JCheckBoxMenuItem breakOnReturn; -+ JMenuItem saveItem; - }; - - class EnterInterrupt implements Runnable { -@@ -1942,6 +2051,13 @@ - public void run() { - JMenu menu = db.getJMenuBar().getMenu(0); - //menu.getItem(0).setEnabled(false); // File->Load -+ -+ // disable Edit menu Cut, Copy, Paste items -+ menu = db.getJMenuBar().getMenu(1); -+ for (int i = 0; i < 3; i++) { -+ menu.getItem(i).setEnabled(false); -+ } -+ - menu = db.getJMenuBar().getMenu(2); - menu.getItem(0).setEnabled(false); // Debug->Break - int count = menu.getItemCount(); -@@ -1954,6 +2070,10 @@ - b = true; - } - db.toolBar.setEnabled(true); -+ -+ // set flag to disable source editing -+ db.setSourceEditingEnabled(false); -+ - // raise the debugger window - db.toFront(); - } -@@ -1967,6 +2087,13 @@ - public void run() { - JMenu menu = db.getJMenuBar().getMenu(0); - menu.getItem(0).setEnabled(true); // File->Load -+ -+ // enable Edit menu items -+ menu = db.getJMenuBar().getMenu(1); -+ for (int i = 0; i < 3; i++) { -+ menu.getItem(i).setEnabled(true); -+ } -+ - menu = db.getJMenuBar().getMenu(2); - menu.getItem(0).setEnabled(true); // Debug->Break - int count = menu.getItemCount() - 1; -@@ -1980,6 +2107,10 @@ - db.toolBar.getComponent(ci).setEnabled(b); - b = false; - } -+ -+ // set flag to enable source editing -+ db.setSourceEditingEnabled(true); -+ - //db.console.consoleTextArea.requestFocus(); - } - }; -@@ -1988,17 +2119,24 @@ - { - String fileName; - Main db; -+ Reader reader = null; - OpenFile(Main db, String fileName) - { - this.fileName = fileName; - this.db = db; - } -+ OpenFile(Main db, String fileName, Reader reader) { -+ this(db, fileName); -+ this.reader = reader; -+ } - public void run() { - Context cx = Context.enter(); - ContextData contextData = ContextData.get(cx); - contextData.breakNextLine = true; - try { -- cx.compileReader(new FileReader(fileName), fileName, 1, null); -+ cx.compileReader( -+ reader == null ? new FileReader(fileName) : reader, -+ fileName, 1, null); - } catch (Exception exc) { - String msg = exc.getMessage(); - if (exc instanceof EcmaError) { -@@ -2019,29 +2157,79 @@ - Scriptable scope; - String fileName; - Main db; -+ Reader reader = null; -+ Object result = null; -+ Exception exception = null; -+ int lineNum = -1; -+ boolean sfExecute = false; -+ - LoadFile(Main db, Scriptable scope, String fileName) { - this.scope = scope; - this.fileName = fileName; - this.db = db; - } -+ -+ LoadFile(Main db, Scriptable scope, String fileName, Reader reader) { -+ this(db, scope, fileName); -+ this.reader = reader; -+ } -+ LoadFile(Main db, Scriptable scope, String fileName, Reader reader, boolean sfExecute ) { -+ this(db, scope, fileName); -+ this.reader = reader; -+ this.sfExecute = sfExecute; -+ } -+ - public void run() { -+ if ( db.officeScripts.isScriptRunning( fileName ) ) -+ { -+ exception = new Exception("The script is already executing"); -+ if ( !sfExecute ) { -+ MessageDialogWrapper.showMessageDialog(db, -+ "Script already executing", -+ "Run", -+ JOptionPane.ERROR_MESSAGE); -+ } -+ return; -+ } -+ db.officeScripts.setScriptRunning( fileName, true ); - Context cx = Context.enter(); - ContextData contextData = ContextData.get(cx); -+ if ( sfExecute ) -+ { -+ contextData.breakNextLine = false; -+ } -+ else -+ { - contextData.breakNextLine = true; -+ } -+ /* -+ FileWindow w = (FileWindow)db.getSelectedFrame(); -+ if ( sfExecute ) -+ { -+ db.swingInvoke(new SetFilePosition(db, w, -1 ) ); -+ }*/ - try { -- cx.evaluateReader(scope, new FileReader(fileName), -+ result = cx.evaluateReader(scope, -+ reader == null ? new FileReader(fileName) : reader, - fileName, 1, null); - } catch (Exception exc) { -+ exception = exc; - String msg = exc.getMessage(); - if (exc instanceof EcmaError) { - EcmaError err = (EcmaError)exc; - msg = err.getSourceName() + ", line " + err.getLineNumber() + ": " + msg; -- } -+ -+ int lineNum = err.getLineNumber() ; -+ //db.swingInvoke(new SetFilePosition(db, w, lineNum ) ); -+ if ( !sfExecute ) { - MessageDialogWrapper.showMessageDialog(db, - msg, - "Run", - JOptionPane.ERROR_MESSAGE); -+ } -+ } - } finally { -+ db.officeScripts.setScriptRunning( fileName, false ); - cx.exit(); - } - } -@@ -2416,13 +2604,13 @@ - super.setVisible(b); - if (b) { - // this needs to be done after the window is visible -- console.consoleTextArea.requestFocus(); -+ // console.consoleTextArea.requestFocus(); - context.split.setDividerLocation(0.5); - try { -- console.setMaximum(true); -- console.setSelected(true); -- console.show(); -- console.consoleTextArea.requestFocus(); -+ // console.setMaximum(true); -+ // console.setSelected(true); -+ // console.show(); -+ // console.consoleTextArea.requestFocus(); - } catch (Exception exc) { - } - } -@@ -2449,35 +2637,6 @@ - - Hashtable functionNames = new Hashtable(); - -- ScriptItem getScriptItem(DebuggableScript fnOrScript) { -- ScriptItem item = (ScriptItem)scriptItems.get(fnOrScript); -- if (item == null) { -- String url = getNormilizedUrl(fnOrScript); -- SourceInfo si = (SourceInfo)sourceNames.get(url); -- if (si == null) { -- if (!fnOrScript.isGeneratedScript()) { -- // Not eval or Function, try to load it from URL -- String source = null; -- try { -- InputStream is = openSource(url); -- try { source = readSource(is); } -- finally { is.close(); } -- } catch (IOException ex) { -- System.err.println -- ("Failed to load source from "+url+": "+ ex); -- } -- if (source != null) { -- si = registerSource(url, source); -- } -- } -- } -- if (si != null) { -- item = registerScript(si, fnOrScript); -- } -- } -- return item; -- } -- - /* Debugger Interface */ - - public void handleCompilationDone(Context cx, DebuggableScript fnOrScript, -@@ -2490,7 +2649,7 @@ - - String getNormilizedUrl(DebuggableScript fnOrScript) { - String url = fnOrScript.getSourceName(); -- if (url == null) { url = "<stdin>"; } -+ if (url == null) { url = "document"; } - else { - // Not to produce window for eval from different lines, - // strip line numbers, i.e. replace all #[0-9]+\(eval\) by (eval) -@@ -2601,7 +2760,7 @@ - if (si == null) { - si = new SourceInfo(sourceUrl, source); - sourceNames.put(sourceUrl, si); -- } else { -+ } else if (!source.equals(si.getSource())) { - si.setSource(source); - } - } -@@ -2762,7 +2921,7 @@ - desk = new JDesktopPane(); - desk.setPreferredSize(new Dimension(600, 300)); - desk.setMinimumSize(new Dimension(150, 50)); -- desk.add(console = new JSInternalConsole("JavaScript Console")); -+ // desk.add(console = new JSInternalConsole("JavaScript Console")); - context = new ContextWindow(this); - context.setPreferredSize(new Dimension(600, 120)); - context.setMinimumSize(new Dimension(50, 50)); -@@ -2871,7 +3030,7 @@ - FrameHelper frame = contextData.getFrame(frameIndex); - String sourceName = frame.getUrl(); - if (sourceName == null || sourceName.equals("<stdin>")) { -- console.show(); -+ // console.show(); - helper.reset(); - return; - } -@@ -2895,6 +3054,19 @@ - int dispatcherIsWaiting = 0; - Context currentContext = null; - -+ // Flag used to establish whether source code editing is allowed in -+ // the debugger, switched on and off depending on whether a debug session -+ // is active -+ boolean sourceEditingEnabled = true; -+ -+ public boolean isSourceEditingEnabled() { -+ return sourceEditingEnabled; -+ } -+ -+ void setSourceEditingEnabled(boolean b) { -+ sourceEditingEnabled = b; -+ } -+ - Context getCurrentContext() { - return currentContext; - } -@@ -3028,14 +3200,14 @@ - swingInvoke(CreateFileWindow.action(this, si, line)); - } - } else { -- if (console.isVisible()) { -+ /* if (console.isVisible()) { - final JSInternalConsole finalConsole = console; - swingInvoke(new Runnable() { - public void run() { - finalConsole.show(); - } - }); -- } -+ } */ - } - swingInvoke(new EnterInterrupt(this, cx)); - swingInvoke(new UpdateContext(this, cx)); -@@ -3217,6 +3389,14 @@ - fileName)).start(); - } - } -+ } else if (cmd.equals("Run")) { -+ FileWindow w = (FileWindow)getSelectedFrame(); -+ if (w != null) -+ w.load(); -+ } else if (cmd.equals("Save")) { -+ FileWindow w = (FileWindow)getSelectedFrame(); -+ if (w != null) -+ w.save(); - } else if (cmd.equals("More Windows...")) { - MoreWindows dlg = new MoreWindows(this, fileWindows, - "Window", "Files"); -@@ -3509,6 +3689,60 @@ - } - } - -+ JInternalFrame getFrameForUrl( URL url ) -+ { -+ JInternalFrame[] frames = desk.getAllFrames(); -+ for (int i = 0; i < frames.length; i++) { -+ FileWindow w = (FileWindow)frames[i]; -+ if ( url.toString().equals( w.getUrl() ) ) { -+ return w; -+ } -+ } -+ return null; -+ } -+ public void highlighLineInSelectedWindow(URL url, int lineNum ){ -+ //FileWindow w = (FileWindow)getFrameForUrl( url ); -+ FileWindow w = (FileWindow)getSelectedFrame(); -+ if (w != null) -+ { -+ if ( lineNum > -1 ) -+ swingInvoke(new SetFilePosition(this, w, lineNum ) ); -+ } -+ } -+ public Object runSelectedWindow( URL scriptUrl ) throws Exception -+ { -+ Object result = null; -+ FileWindow w = (FileWindow)getSelectedFrame(); -+ //FileWindow w = (FileWindow)getFrameForUrl( scriptUrl ); -+ w.toFront(); -+ if (w != null) -+ { -+ Scriptable scope = w.db.getScope(); -+ if (scope == null) -+ { -+ MessageDialogWrapper.showMessageDialog(w.db, "Can't load scripts: no scope available", "Run", JOptionPane.ERROR_MESSAGE); -+ result = null; -+ } -+ else -+ { -+ String url = w.getUrl(); -+ Thread executorThread = null; -+ if (url != null) -+ { -+ LoadFile executor = new LoadFile(w.db,scope, url, new StringReader(w.textArea.getText()), true ); -+ executor.run(); -+ result = executor.result; -+ if ( executor.exception != null ) -+ { -+ throw executor.exception; -+ } -+ } -+ } -+ } -+ return result; -+ -+ } -+ - // - // public interface - // -@@ -3604,6 +3838,69 @@ - return console.getErr(); - } - -+ public void openFile(URL scriptUrl, Scriptable scope, Runnable closeCallback ) { -+ if (scope == null) { -+ MessageDialogWrapper.showMessageDialog(this, -+ "Can't compile scripts: no scope available", -+ "Open", JOptionPane.ERROR_MESSAGE); -+ } else { -+ if (scriptUrl != null) { -+ try -+ { -+ InputStreamReader reader = new InputStreamReader(scriptUrl.openStream()); -+ String fileName = null; -+ if ( scriptUrl.getProtocol().startsWith("vnd.sun.star.") ) -+ { -+ fileName = scriptUrl.toString(); -+ } -+ else -+ { -+ fileName = scriptUrl.getPath(); -+ } -+ officeScripts.addScript( fileName, scriptUrl, scope, closeCallback ); -+ //new Thread(new OpenFile(this, scope, fileName, reader )).start(); -+ swingInvoke( new OpenFile(this, fileName, reader )); -+ } -+ catch ( IOException e ) -+ { -+ MessageDialogWrapper.showMessageDialog(this, -+ "Can't open stream for script: " + e.toString(), -+ "Open", JOptionPane.ERROR_MESSAGE); -+ } -+ } -+ } -+ split1.setDividerLocation(1.0); -+ } -+ -+ public void openFile(String fileName) { -+ Scriptable scope = getScope(); -+ if (scope == null) { -+ MessageDialogWrapper.showMessageDialog(this, -+ "Can't compile scripts: no scope available", -+ "Open", JOptionPane.ERROR_MESSAGE); -+ } else { -+ if (fileName != null) { -+ new Thread(new OpenFile(this, fileName)).start(); -+ } -+ } -+ split1.setDividerLocation(1.0); -+ } -+ -+ public void openStream(InputStream in) { -+ Scriptable scope = getScope(); -+ if (scope == null) { -+ MessageDialogWrapper.showMessageDialog(this, -+ "Can't compile scripts: no scope available", -+ "Open", JOptionPane.ERROR_MESSAGE); -+ } else { -+ if (in != null) { -+ new Thread(new OpenFile(this, null, new InputStreamReader(in))).start(); -+ } -+ } -+ split1.setDividerLocation(1.0); -+ menubar.setSaveEnabled(false); -+ } -+ - public static void main(String[] args) { - try { - mainThread = Thread.currentThread(); -@@ -3635,5 +3932,162 @@ - } - } - -+ // patched Office specific interface -+ -+ OfficeScriptInfo officeScripts = new OfficeScriptInfo(); -+ -+ void removeScript( String url ) -+ { -+ // Remove the FileWindow from list of open sources -+ fileWindows.remove( url ); -+ -+ // Remove sourceInfo from sourceNames, ensures that -+ // breakpoints etc are deleted -+ synchronized (sourceNames) { -+ sourceNames.remove( url ); -+ } -+ // Removes scriptItems for the script, ensures that a new open ( from openFile ) -+ // will succeed, openFile should open file but fails due to fact that -+ synchronized ( scriptItems ) -+ { -+ Iterator iter = scriptItems.entrySet().iterator(); -+ while ( iter.hasNext() ) -+ { -+ Map.Entry me = ( Map.Entry )iter.next(); -+ ScriptItem item = (ScriptItem)me.getValue(); -+ SourceInfo si = item.getSourceInfo(); -+ if ( si.getUrl().equals( url ) ) -+ { -+ //match -+ scriptItems.remove( me.getKey() ); -+ break; -+ } -+ } -+ } -+ officeScripts.deleteScript( url ); -+ } -+ -+ -+ ScriptItem getScriptItem(DebuggableScript fnOrScript) { -+ ScriptItem item = (ScriptItem)scriptItems.get(fnOrScript); -+ if (item == null) { -+ String url = getNormilizedUrl(fnOrScript); -+ SourceInfo si = (SourceInfo)sourceNames.get(url); -+ if (si == null) { -+ if (!fnOrScript.isGeneratedScript()) { -+ // Not eval or Function, try to load it from URL -+ String source = null; -+ try { -+ InputStream is = openSource(url); -+ try { source = readSource(is); } -+ finally { is.close(); } -+ } catch (IOException ex) { -+ System.err.println -+ ("Failed to load source from "+url+": "+ ex); -+ } -+ if (source != null) { -+ si = registerSource(url, source); -+ } -+ } -+ } -+ if (si != null) { -+ item = registerScript(si, fnOrScript); -+ } -+ } -+ -+ return item; -+ } -+ -+ public void showScriptWindow(URL url ){ -+ String key = url.getPath(); -+ if ( url.getProtocol().startsWith("vnd.sun.star") ) -+ { -+ key = url.toString(); -+ } -+ FileWindow w = (FileWindow)getFileWindow( key ); -+ if ( w != null ) -+ { -+ //w.maximize(); -+ desk.getDesktopManager().deiconifyFrame(w); -+ desk.getDesktopManager().activateFrame(w); -+ w.show(); -+ w.toFront(); -+ } -+ } -+ -+ public void highlighLineInScriptWindow(URL url, int lineNum ){ -+ String key = url.getPath(); -+ if ( url.getProtocol().startsWith("vnd.sun.star") ) -+ { -+ key = url.getPath(); -+ } -+ FileWindow w = (FileWindow)getFileWindow( key ); -+ if (w != null) -+ { -+ if ( lineNum > -1 ) -+ swingInvoke(new SetFilePosition(this, w, lineNum ) ); -+ } -+ } -+ public Object runScriptWindow( URL scriptUrl ) throws Exception -+ { -+ String key = scriptUrl.getPath(); -+ if ( scriptUrl.getProtocol().startsWith("vnd.sun.star") ) -+ { -+ key = scriptUrl.toString(); -+ } -+ FileWindow w = (FileWindow)getFileWindow( key ); -+ Object result = null; -+ w.toFront(); -+ if (w != null) -+ { -+ //Scriptable scope = w.db.getScope(); -+ Scriptable scope = w.db.officeScripts.getScriptScope( key ); -+ if (scope == null) -+ { -+ MessageDialogWrapper.showMessageDialog(w.db, "Can't load scripts: no scope available", "Run", JOptionPane.ERROR_MESSAGE); -+ result = null; -+ } -+ else -+ { -+ String url = w.getUrl(); -+ Thread executorThread = null; -+ if (url != null) -+ { -+ LoadFile executor = new LoadFile(w.db,scope, url, new StringReader(w.textArea.getText()), true ); -+ executor.run(); -+ result = executor.result; -+ if ( executor.exception != null ) -+ { -+ throw executor.exception; -+ } -+ } -+ } -+ } -+ return result; -+ -+ } -+ -+ public boolean isModified( URL url ) -+ { -+ String key = url.getPath(); -+ if ( url.getProtocol().startsWith("vnd.sun.star") ) -+ { -+ key = url.toString(); -+ } -+ FileWindow w = (FileWindow)getFileWindow( key ); -+ return w.isModified(); -+ } -+ -+ public String getText( URL url ) -+ { -+ String key = url.toString(); -+ if ( url.getProtocol().startsWith("vnd.sun.star") ) -+ { -+ key = url.toString(); -+ } -+ FileWindow w = (FileWindow)getFileWindow( key ); -+ return w.getText(); -+ } -+ - } - ---- misc/rhino1_5R5/toolsrc/org/mozilla/javascript/tools/shell/JavaPolicySecurity.java Thu Mar 25 21:54:34 2004 -+++ misc/build/rhino1_5R5/toolsrc/org/mozilla/javascript/tools/shell/JavaPolicySecurity.java Fri Mar 28 17:24:23 2008 -@@ -36,6 +36,7 @@ - package org.mozilla.javascript.tools.shell; - - import java.security.*; -+import java.security.cert.Certificate; - import java.net.MalformedURLException; - import java.net.URL; - import java.util.Hashtable; -@@ -124,7 +125,7 @@ - - public JavaPolicySecurity() { - // To trigger error on jdk-1.1 with lazy load -- new CodeSource(null, null); -+ new CodeSource(null, (Certificate [])null); - } - - protected void callProcessFileSecure(final Context cx, -@@ -167,7 +168,7 @@ - } - - private ProtectionDomain getUrlDomain(URL url) { -- CodeSource cs = new CodeSource(url, null); -+ CodeSource cs = new CodeSource(url, (Certificate [])null); - PermissionCollection pc = Policy.getPolicy().getPermissions(cs); - return new ProtectionDomain(cs, pc); - } |