OSSP CVS Repository

ossp - Check-in [5440]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 5440
Date: 2005-Feb-12 21:10:34 (local)
2005-Feb-12 20:10:34 (UTC)
User:rse
Branch:
Comment: Import new upstream version: Mozilla JavaScript 1.6-1.5.0.5-20060722
Tickets:
Inspections:
Files:
ossp-pkg/js/src/perlconnect/Makefile.ref      1.1 -> 1.1.1.1    
ossp-pkg/js/src/perlconnect/Makefile.ref      added-> 1.1
ossp-pkg/js/src/perlconnect/jsperlbuild.pl      1.1 -> 1.1.1.1    
ossp-pkg/js/src/perlconnect/jsperlbuild.pl      added-> 1.1
ossp-pkg/js/src/perlconnect/test.js      1.1 -> 1.1.1.1    
ossp-pkg/js/src/perlconnect/test.js      added-> 1.1
ossp-pkg/js/src/perlconnect/test.pl      1.1 -> 1.1.1.1    
ossp-pkg/js/src/perlconnect/test.pl      added-> 1.1

ossp-pkg/js/src/perlconnect/Makefile.ref -> 1.1

*** /dev/null    Sat Nov 23 08:44:00 2024
--- -    Sat Nov 23 08:44:28 2024
***************
*** 0 ****
--- 1,152 ----
+ #
+ # ***** BEGIN LICENSE BLOCK *****
+ # Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ #
+ # The contents of this file are subject to the Mozilla Public License Version
+ # 1.1 (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.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS IS" basis,
+ # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ # for the specific language governing rights and limitations under the
+ # License.
+ #
+ # The Original Code is Mozilla Communicator client code, released
+ # March 31, 1998.
+ #
+ # The Initial Developer of the Original Code is
+ # Netscape Communications Corporation.
+ # Portions created by the Initial Developer are Copyright (C) 1999
+ # the Initial Developer. All Rights Reserved.
+ #
+ # Contributor(s):
+ #
+ # Alternatively, the contents of this file may be used under the terms of
+ # either the GNU General Public License Version 2 or later (the "GPL"), or
+ # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ # in which case the provisions of the GPL or the LGPL are applicable instead
+ # of those above. If you wish to allow use of your version of this file only
+ # under the terms of either the GPL or the LGPL, and not to allow others to
+ # use your version of this file under the terms of the MPL, indicate your
+ # decision by deleting the provisions above and replace them with the notice
+ # and other provisions required by the GPL or the LGPL. If you do not delete
+ # the provisions above, a recipient may use your version of this file under
+ # the terms of any one of the MPL, the GPL or the LGPL.
+ #
+ # ***** END LICENSE BLOCK *****
+ 
+ #
+ # Makefile for the perlconnect extension to javascript.
+ #
+ 
+ #
+ # Stolen with apologies to liveconnect.
+ #
+ 
+ DEPTH = ..
+ 
+ #
+ # XCFLAGS may be set in the environment or on the gmake command line
+ #
+ CC = cc
+ 
+ CFLAGS          += $(OPTIMIZER) $(OS_CFLAGS) $(DEFINES) $(INCLUDES) \
+                  -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DX86_LINUX \
+                  -DDEBUG -DDEBUG_livshits -Dbool=char -DHAS_BOOL -DGCC_OPT_BUG -D_XOPEN_SOURCE
+ 
+ #                  -DJSFILE $(XCFLAGS)\
+ #                -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DX86_LINUX 
+ 
+ 
+ LDFLAGS                += -lm $(XLDFLAGS)
+ 
+ #
+ # Ask perl what flags it was built with, so we can build js with similar flags
+ # and link properly.  Viva gmake.
+ #
+ PERLCFLAGS := $(shell perl -MExtUtils::Embed -e ccopts)
+ PERLLDFLAGS := $(shell perl -MExtUtils::Embed -e ldopts)
+ 
+ # perl erroneously reports compiler flag -rdynamic (interpreted by ld
+ # as -r) when it really meant -export-dynamic.
+ PERLLDFLAGS := $(subst -rdynamic,-export-dynamic,$(PERLLDFLAGS))
+ 
+ CFLAGS += $(PERLCFLAGS)
+ LDFLAGS += $(PERLLDFLAGS)
+ 
+ 
+ # For purify
+ PURE_CFLAGS     = -DXP_UNIX $(OPTIMIZER) $(PURE_OS_CFLAGS) $(DEFINES) \
+                   $(INCLUDES) $(XCFLAGS)
+ 
+ #
+ # perlconnect file lists
+ #
+ PC_HFILES =            \
+        jsperl.h        \
+        $(NULL)
+ 
+ HFILES = $(PC_HFILES)
+ 
+ PC_CFILES =    \
+        jsperl.c \
+        JS.c \
+        $(NULL)
+ 
+ #JS.c: JS.xs typemap
+ #      perl jsperlbuild.pl
+ 
+ LIB_CFILES  = $(PC_CFILES)
+ 
+ PROG_FILE = js
+ 
+ include $(DEPTH)/config.mk
+ 
+ # uncomment this if we decide we need a local config dir...
+ #include config/$(OS_CONFIG).mk
+ 
+ INCLUDES   += -I. -I.. -I../$(OBJDIR)
+ 
+ ifdef USE_MSVC
+ OTHER_LIBS += $(DEPTH)/fdlibm/$(OBJDIR)/fdlibm.lib
+ else
+ OTHER_LIBS += -L$(DEPTH)/fdlibm/$(OBJDIR) -lfdm
+ endif
+ 
+ ifdef JS_THREADSAFE
+ ifdef USE_MSVC
+ OTHER_LIBS += $(DEPTH)/../../dist/$(OBJDIR)/lib/nspr3.lib
+ else
+ OTHER_LIBS += -L$(DEPTH)/../../dist/$(OBJDIR)/lib -lnspr3
+ endif
+ endif
+ 
+ ifdef USE_MSVC
+ LIBRARY = $(OBJDIR)/JS.lib
+ SHARED_LIBRARY = $(OBJDIR)/JS.dll
+ PROGRAM = $(OBJDIR)/jsperl.exe
+ else
+ LIBRARY = $(OBJDIR)/JS.a
+ SHARED_LIBRARY = $(OBJDIR)/JS.so
+ PROGRAM = $(OBJDIR)/jsperl
+ endif
+ 
+ include $(DEPTH)/rules.mk
+ 
+ ifdef USE_MSVC
+ $(OBJDIR)/$(PROG_FILE)_lc.obj: ../$(PROG_FILE).c
+        @$(MAKE_OBJDIR)
+        $(CC) -Fo$@ -c $(CFLAGS) -DPERLCONNECT ../$(PROG_FILE).c
+ 
+ $(PROGRAM): $(OBJDIR)/$(PROG_FILE)_lc.obj $(LIBRARY)
+        link.exe -out:"$@" /pdb:"$(OBJDIR)/$(@F:.exe=.pdb)" $(EXE_LINK_FLAGS) ../$(OBJDIR)/js32.lib $?
+ else
+ $(OBJDIR)/$(PROG_FILE).o: ../$(PROG_FILE).c
+        @$(MAKE_OBJDIR)
+        $(CC) -o $@ -c $(CFLAGS) -DPERLCONNECT ../$(PROG_FILE).c
+ 
+ $(PROGRAM): $(OBJDIR)/$(PROG_FILE).o
+        @$(MAKE_OBJDIR)
+        $(CC) -o $@ $(CFLAGS) $+ $(LIBRARY) ../$(OBJDIR)/libjs.a $(LDFLAGS) $(OTHER_LIBS)
+ endif


ossp-pkg/js/src/perlconnect/Makefile.ref 1.1 -> 1.1.1.1



ossp-pkg/js/src/perlconnect/jsperlbuild.pl -> 1.1

*** /dev/null    Sat Nov 23 08:44:00 2024
--- -    Sat Nov 23 08:44:28 2024
***************
*** 0 ****
--- 1,81 ----
+ #
+ # ***** BEGIN LICENSE BLOCK *****
+ # Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ #
+ # The contents of this file are subject to the Mozilla Public License Version
+ # 1.1 (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.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS IS" basis,
+ # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ # for the specific language governing rights and limitations under the
+ # License.
+ #
+ # The Original Code is Mozilla Communicator client code, released
+ # March 31, 1998.
+ #
+ # The Initial Developer of the Original Code is
+ # Netscape Communications Corporation.
+ # Portions created by the Initial Developer are Copyright (C) 1999
+ # the Initial Developer. All Rights Reserved.
+ #
+ # Contributor(s):
+ #
+ # Alternatively, the contents of this file may be used under the terms of
+ # either the GNU General Public License Version 2 or later (the "GPL"), or
+ # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ # in which case the provisions of the GPL or the LGPL are applicable instead
+ # of those above. If you wish to allow use of your version of this file only
+ # under the terms of either the GPL or the LGPL, and not to allow others to
+ # use your version of this file under the terms of the MPL, indicate your
+ # decision by deleting the provisions above and replace them with the notice
+ # and other provisions required by the GPL or the LGPL. If you do not delete
+ # the provisions above, a recipient may use your version of this file under
+ # the terms of any one of the MPL, the GPL or the LGPL.
+ #
+ # ***** END LICENSE BLOCK *****
+ 
+ #
+ # Helper perl script to abstract the location of xsubpp
+ #
+ 
+ # Thanks to Dave Neuer <dneuer@futuristics.net> for the original
+ # version of this file.  Entered as NPL with his permission.
+ 
+ use File::Find;
+ use Cwd;
+ 
+ $notfound = 1;
+ 
+ foreach(@INC){
+        next if /^\.$/;
+        if(-e $_){
+                find(\&find_ExtUtils, $_);
+        }
+ }
+ 
+ if(-e $xsubpp && -e $typemap){
+        $res = `perl $xsubpp -typemap $typemap -typemap typemap JS.xs > JS.c`;
+        if(-e "JS.c"){
+                print "Successfuly built JS.c\n";
+                exit(0);
+        }
+        else{
+                die("Couldn't build JS.c: $res");
+        }
+ }
+ else{
+        die("Couldn't locate files neccessary for building JS.c");
+ }
+ 
+ sub find_ExtUtils{
+        if($notfound){
+                if($File::Find::dir =~ /ExtUtils/){     
+                        my $path = cwd;
+                        $xsubpp = $path . "/xsubpp";
+                        $typemap = $path . "/typemap";
+                        undef $notfound;
+                }
+        }
+ }


ossp-pkg/js/src/perlconnect/jsperlbuild.pl 1.1 -> 1.1.1.1



ossp-pkg/js/src/perlconnect/test.js -> 1.1

*** /dev/null    Sat Nov 23 08:44:00 2024
--- -    Sat Nov 23 08:44:28 2024
***************
*** 0 ****
--- 1,73 ----
+ /* ***** BEGIN LICENSE BLOCK *****
+  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+  *
+  * The contents of this file are subject to the Mozilla Public License Version
+  * 1.1 (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.mozilla.org/MPL/
+  *
+  * Software distributed under the License is distributed on an "AS IS" basis,
+  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+  * for the specific language governing rights and limitations under the
+  * License.
+  *
+  * The Original Code is Mozilla Communicator client code, released
+  * March 31, 1998.
+  *
+  * The Initial Developer of the Original Code is
+  * Netscape Communications Corporation.
+  * Portions created by the Initial Developer are Copyright (C) 1998
+  * the Initial Developer. All Rights Reserved.
+  *
+  * Contributor(s):
+  *
+  * Alternatively, the contents of this file may be used under the terms of
+  * either the GNU General Public License Version 2 or later (the "GPL"), or
+  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+  * in which case the provisions of the GPL or the LGPL are applicable instead
+  * of those above. If you wish to allow use of your version of this file only
+  * under the terms of either the GPL or the LGPL, and not to allow others to
+  * use your version of this file under the terms of the MPL, indicate your
+  * decision by deleting the provisions above and replace them with the notice
+  * and other provisions required by the GPL or the LGPL. If you do not delete
+  * the provisions above, a recipient may use your version of this file under
+  * the terms of any one of the MPL, the GPL or the LGPL.
+  *
+  * ***** END LICENSE BLOCK ***** */
+ 
+ /*******************************************************************************
+ * PerlConnect test file. Some primitive testing in "silent mode" -- that is,
+ * you should be able to run
+ *           perlconnectshell test.js
+ * without any error messages. See README.html for more info.
+ *******************************************************************************/
+ 
+ // Init
+ assert(p = new Perl('Sys::Hostname', 'Time::gmtime'), "Perl initialization failed");
+ // Simple eval
+ assert(p.eval("'-' x 3") == '---', "Wrong value returned from eval");
+ 
+ assert(p.eval("undef()")==undefined, "Wrong value returned from eval");
+ // Arrays
+ assert(a=p.eval("(1, 2, 3);"), "eval failed, 1");
+ assert(a[1]==2, "Wrong value");
+ assert(a.length==3, "Wrong length");
+ // Hashes
+ assert(h=p.eval("{'one'=>1, 'two'=>2};"), "eval failed, 2");
+ assert(h["two"]==2, "Wrong value");
+ // Func. call
+ assert(p.eval("&hostname()") == p.call("hostname"), "Wrong value returned from eval or call");
+ // Complex call
+ assert(b=p.Time.gmtime.gmtime(), "call failed");
+ assert(b.length==9, "Wrong length")
+ // Variables
+ // Scalars
+ assert(p.eval("$a = 100; $b = 'abc';"), "eval failed, 3");
+ assert(p.$a ==100, "Wrong variable value, 1");
+ assert(p["$b"] == 'abc', "Wrong variable value, 2");
+ 
+ /* Auxilary function */
+ function assert(cond, msg)
+ {
+     cond || print("Error: " + msg+"\n");
+ }  // assert


ossp-pkg/js/src/perlconnect/test.js 1.1 -> 1.1.1.1



ossp-pkg/js/src/perlconnect/test.pl -> 1.1

*** /dev/null    Sat Nov 23 08:44:00 2024
--- -    Sat Nov 23 08:44:29 2024
***************
*** 0 ****
--- 1,244 ----
+ #
+ # ***** BEGIN LICENSE BLOCK *****
+ # Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ #
+ # The contents of this file are subject to the Mozilla Public License Version
+ # 1.1 (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.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS IS" basis,
+ # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ # for the specific language governing rights and limitations under the
+ # License.
+ #
+ # The Original Code is Mozilla Communicator client code, released
+ # March 31, 1998.
+ #
+ # The Initial Developer of the Original Code is
+ # Netscape Communications Corporation.
+ # Portions created by the Initial Developer are Copyright (C) 1998
+ # the Initial Developer. All Rights Reserved.
+ #
+ # Contributor(s):
+ #
+ # Alternatively, the contents of this file may be used under the terms of
+ # either the GNU General Public License Version 2 or later (the "GPL"), or
+ # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ # in which case the provisions of the GPL or the LGPL are applicable instead
+ # of those above. If you wish to allow use of your version of this file only
+ # under the terms of either the GPL or the LGPL, and not to allow others to
+ # use your version of this file under the terms of the MPL, indicate your
+ # decision by deleting the provisions above and replace them with the notice
+ # and other provisions required by the GPL or the LGPL. If you do not delete
+ # the provisions above, a recipient may use your version of this file under
+ # the terms of any one of the MPL, the GPL or the LGPL.
+ #
+ # ***** END LICENSE BLOCK *****
+ 
+ #
+ # Test file for JS.pm
+ #
+ 
+ ############################################################
+ # support packages for test script
+ ############################################################
+ 
+ ############################################################
+ # Fotrik
+ package Father;
+ 
+ sub old_meth {
+     return "Father::old_meth";
+ }
+ 
+ 
+ ############################################################
+ # Synacek
+ package Son;
+ use vars qw( @ISA );
+ @ISA = qw( Father );
+ 
+ sub new {
+     my $class = shift;
+     $class = ref $class || $class;
+     my $self = {};
+     bless $self, $class;
+     return $self;
+ }
+ 
+ sub new_meth {
+     return "Son::new_meth";
+ }
+ 
+ ############################################################
+ # Proxy
+ package Proxy;
+ 
+ sub new {
+     my $class = shift;
+     $class = ref $class || $class;
+     my $self = { property => shift };
+     bless $self, $class;
+     return $self;    
+ }
+ 
+ sub getObj {
+     my $ret = new Son();
+     return $ret;
+ }
+ 
+ sub getValue {
+     my $self = shift;
+     return $self->{ property };
+ }
+ 
+ sub getArray {
+     my $self = shift;
+     return [34, 35, 36, 37, 38];
+ }
+ 
+ sub getHash {
+     my $self = shift;
+     return { testkey1 => 'testvalue1',
+             testkey2 => 'testvalue2',
+             testkey3 => 'testvalue3', };
+ }
+ 
+ ############################################################
+ # main part of the test script
+ ############################################################
+ 
+ package main;
+ use JS;
+ 
+ BEGIN { 
+     $| = 1; print "1..12\n"; 
+ }
+ 
+ END 
+   { print "not ok 1\n" unless $loaded; }
+ 
+ $loaded = 1;
+ print "ok 1\n";
+ 
+ use strict; #no typos, please
+ 
+ my $rt = new JS(1_204 ** 2);
+ my $cx = $rt->createContext(8 * 1_024);
+ 
+ my $jsval;
+ my $testc = 1; #testcounter
+ ############################################################
+ # the simplest test
+ $testc++;
+ $jsval = $cx->eval('6;');
+ print $jsval == 6 ? "ok $testc\n" : "not ok $testc\n"; #2
+ 
+ ############################################################
+ #second very simple test
+ $testc++;
+ $jsval = $cx->eval('"hallo";');
+ print $jsval eq "hallo" ? "ok $testc\n" : "not ok $testc\n"; #3
+ 
+ ############################################################
+ # third very simple test
+ $testc++;
+ $jsval = $cx->eval("1.23");
+ print $jsval == 1.23 ? "ok $testc\n" : "not ok $testc\n"; #4
+ 
+ ############################################################
+ #undef is little bit tricky
+ $testc++;
+ $jsval = $cx->eval('undefined');
+ print ! defined $jsval  ? "ok $testc\n" : "not ok $testc\n"; #5
+ 
+ ############################################################
+ #can ve tie js objects? (generally to hash, Arrays to arrays too)
+ $testc++;
+ $jsval = $cx->eval('foo = new Object(); foo.prop = 11; foo;');
+ my %hash;
+ #read js property
+ tie %hash, 'JS::Object', $jsval;
+ print $hash{prop} == 11  ? "ok $testc\n" : "not ok $testc\n"; #6
+ 
+ ############################################################
+ #set js propertry 
+ $testc++;
+ $hash{prop2} = 2;
+ $jsval = $cx->eval('foo.prop2;');
+ print $jsval == 2  ? "ok $testc\n" : "not ok $testc\n"; #7
+ 
+ ############################################################
+ #tie array
+ $testc++;
+ my @arr;
+ $jsval = $cx->eval('arr = new Array(); arr[0] = 0; arr[1] = 1; arr;');
+ tie @arr, "JS::Object", $jsval;
+ print ((($#arr == 1) && ($arr[1] == 1)) ? "ok $testc\n" : "not ok $testc\n");#8
+ 
+ ############################################################
+ # object delegation test
+ $testc++;
+ $cx->createObject(new Proxy("init_value"), "perlobj", 
+                  { getObj   => \&Proxy::getObj,
+                    getValue => \&Proxy::getValue,
+                    getArray => \&Proxy::getArray,
+                    getHash  => \&Proxy::getHash,
+                  });
+ $jsval = $cx->eval("perlobj.getValue()");
+ print $jsval eq "init_value"  ? "ok $testc\n" : "not ok $testc\n"; #9
+ 
+ ############################################################
+ # perl object returned to js
+ $testc++;
+ $jsval = $cx->eval("po = perlobj.getObj(); po.new_meth()");
+ print $jsval eq "Son::new_meth" ? "ok $testc\n" : "not ok $testc\n"; #10
+ 
+ ############################################################
+ # and what about inherited methods?
+ $testc++;
+ $jsval = $cx->eval("po.old_meth()");
+ print $jsval eq "Father::old_meth" ? "ok $testc\n" : "not ok $testc\n"; #11
+ 
+ ############################################################
+ # pass an array, check the element
+ $testc++;
+ $jsval = $cx->eval("parr = perlobj.getArray(); parr[2];");
+ print $jsval == 36 ? "ok $testc\n" : "not ok $testc\n"; #12
+ 
+ ############################################################
+ # check the array length
+ $testc++;
+ $jsval = $cx->eval("parr.length");
+ print $jsval == 5 ? "ok $testc\n" : "not ok $testc\n"; #13
+ 
+ ############################################################
+ # pass a hash, check the element
+ $testc++;
+ $jsval = $cx->eval("phash = perlobj.getHash(); phash.testkey1;");
+ print $jsval eq 'testvalue1' ? "ok $testc\n" : "not ok $testc\n"; #14
+ 
+ ############################################################
+ # error test
+ $testc++;
+ my $line;
+ my $err;
+ sub js_ErrorReporter {
+     my ($msg, $file, $line, $linebuf, $token) = @_;
+     $err =  "line $line $msg";
+ }
+ $cx->setErrorReporter( \&js_ErrorReporter );
+ $cx->eval("x = 2 + 4;\nx.method()\n");
+ print $err =~ /^line 1/ ? "ok $testc\n" : "not ok $testc\n"; #15
+ 
+ ############################################################
+ # cleanup
+ # so far we have to undef context value, to make sure,
+ # it is disposed before runtime
+ undef $cx;
+ undef $rt;
+ 
+ __END__
+ 
+ 


ossp-pkg/js/src/perlconnect/test.pl 1.1 -> 1.1.1.1


CVSTrac 2.0.1