Copyright ©1999 by AAA+ Software Forschungs- und Entwicklungs Ges.m.b.H.  All Rights Reserved.  Revision 2.1 - Jan 19, 1999.

Joy Command Reference




Table of Contents
Core JavaScript
Introduction to Joy Extensions
Expressions
Statements
Object Types
Global Functions
Global Variables


Core JavaScript


Documentation for the core JavaScript language is available from Netscape's web site. Follow the links below. If you are using HelpViewer you should switch to OmniWeb now.

The Joy language is implemented as a set of extensions to core JavaScript. This functionality was originally developed for writing intelligent web pages. Now it is available for scripting Objective-C and Java objects with Joy.

Please note, however, that as JavaScript was designed for, and documented as, a language for web programming, some of the examples in the documentation are web related. For example, some examples print HTML code as output, which is expected to be interpreted by a web browser. Under Joy, however, the HTML code will simply get printed to the console. Also, objects that are provided by the browser, like Document, don't exist in Joy.

Also, please note, that Visual JavaScript and the JavaScript debugger are not products produced or supported by AAA+ Software. It is unlikely that either will be compatible with the scripts that are written with Joy, as Joy has significantly extended the JavaScript functionality and syntax.

One last caveat concerns the naming of the Java classes in LiveConnect (the JavaScript/Java interface): To avoid clashes with other software that wants to use the original LiveConnect from Netscape as opposed to the one modified by AAA+, all the netscape.javascript.* classes have been renamed to aaaplus.javascript.* in Joy.


Introduction to Joy Extensions
Objective-C Literals - Objective C-style literal constants
Preprocessor Features - Macros, header files, and conditional compilation
Additional Operators - JavaScript operators added by Joy
Data Types - Mapping between Objective-C and JavaScript data types
Exception Handling - Handling of Objective-C exceptions and JavaScript errors
Differences between Joy and ECMA JavaScript
Differences between Joy and Objective-C


Expressions
Objective-C Message Expression
@selector - Objective-C selector expression
@protocol - Objective-C protocol expression
@encode - Objective-C type encoding expression


Statements
Objective C-Style Declarations - Declaring variables, functions, and types
NS_DURING...NS_HANDLER - Exception handling
@class - Create a new Objective-C class
@teach - Teach new methods to an existing Objective-C class or object
@protocol - Create a new Objective-C protocol
@interface - Declare the interface for an Objective-C class or category
@implementation - Implement an Objective-C class or category


Object Types
ObjC - Provides some functions to interface with the Objective-C runtime
Java - Provides some functions to interface with the Java runtime
Id - Represents an Objective-C id
Pointer - Represents a pointer
Struct - Represents a C struct
Union - Represents a C union
LongLong - Represents a C long long
UnsignedLongLong - Represents a C unsigned long long


Global Functions
gc- Run the garbage collector
help - Joy online manual
source - Load files named by string arguments
precompile - Precompile an Objective-C header file for faster #import into Joy
print - Print to standard output
po - Print Objective-C object's description to standard output
version - Get or set JavaScript version number


Global Variables
self - Current interpreter
mainInterp - Main interpreter