If you are building a standalone version of Spidermonkey (see: SpiderMonkey Build Documentation), this variable can be added on the make command line, like so:
cd mozilla/js/src make -f Makefile.ref JS_HAS_FILE_OBJECT=1
Alternatively, if you are build a larger product (such as a browser) and want to include the File object, you may need to perform minor Makefile surgery.
Non-Standard Server-Side Object
This object lets you work files and directories on the local filesystem, and create OS pipelines. Creating a pipeline involves spawning arbitrary processes; this means that giving a script access to the
File object is exactly equivalent to giving the script access to the UNIX shell or DOS command interpreter.
Filesystem access is implemented with NSPR I/O Functions, and as such shares many semantics. Pipelines are implemented with the
popen() system call. There is currently no support for
Here is the original proposal for this object, and a status update from December 1998: http://www.mozilla.org/js/js-file-object.html
new File(); new File(filename);
- Name of the file we want to work with. Directories and pipelines are considered special files. Pipelines either begin or end with the pipe (
Filenames are specified as strings that have an implementation defined format. Use of standard "file:" URLs is encouraged. If no argument is supplied to the constructor, the current working directory is the file object that is returned.
Examples of possible prefix strings are "/" to indicate the Unix root directory, "c:" to specify a Windows drive letter, and "file:" to indicate a file URL.
When a file is constructed, leading and trailing spaces are removed from the filename, so new File(" abc.txt ") just creates a file called abc.txt. Filenames starting and ending with the pipe symbol (
|) are interpreted as pipes. Readable pipelines (i.e. pipe to programs generating output on stdout) begin with the pipe symbol; writeable pipelines end with the pipe symbol. Bi-directional pipelines are not supported.
input -- stdin
error -- stderr
output -- stdout
Example: Sending mail through a pipeline