#
# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
# ##########################################################
# ### THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT. ###
# ##########################################################
#
module name jdk.jsobject
header exports netscape/javascript requires name\u0020;java.base\u0020;flags\u0020;8000,name\u0020;java.desktop\u0020;flags\u0020;0 uses jdk/internal/netscape/javascript/spi/JSObjectProvider flags 8000

class name netscape/javascript/JSException
header extends java/lang/RuntimeException flags 21
method name <init> descriptor ()V flags 1
method name <init> descriptor (Ljava/lang/String;)V flags 1
method name <init> descriptor (Ljava/lang/Throwable;)V flags 1

class name netscape/javascript/JSObject
header extends java/lang/Object flags 421
method name <init> descriptor ()V flags 4
method name call descriptor (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; thrownTypes netscape/javascript/JSException flags 481
method name eval descriptor (Ljava/lang/String;)Ljava/lang/Object; thrownTypes netscape/javascript/JSException flags 401
method name getMember descriptor (Ljava/lang/String;)Ljava/lang/Object; thrownTypes netscape/javascript/JSException flags 401
method name setMember descriptor (Ljava/lang/String;Ljava/lang/Object;)V thrownTypes netscape/javascript/JSException flags 401
method name removeMember descriptor (Ljava/lang/String;)V thrownTypes netscape/javascript/JSException flags 401
method name getSlot descriptor (I)Ljava/lang/Object; thrownTypes netscape/javascript/JSException flags 401
method name setSlot descriptor (ILjava/lang/Object;)V thrownTypes netscape/javascript/JSException flags 401
method name getWindow descriptor (Ljava/applet/Applet;)Lnetscape/javascript/JSObject; thrownTypes netscape/javascript/JSException flags 9 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(since="9")

