Commit Graph

1260 Commits

Author SHA1 Message Date
jband%netscape.com
51e076e20b rest of the fix for bug 68971 - can't share a kungfoodeathgrip. sr=brendan r=shaver 2001-02-16 02:21:22 +00:00
brendan%mozilla.org
b8a3d1e3ef Don't crash on a newborn object (68971, r=jband, sr=shaver). 2001-02-16 02:09:42 +00:00
brendan%mozilla.org
e0c2c3974f The rest of the fix for bug 68498, see the extensive comments in that bug (r=jband, sr=shaver). 2001-02-16 02:04:12 +00:00
brendan%mozilla.org
fd8a6ea21b Restore the much-loved, albeit non-ECMA, function caller property (65683, r=rogerl, sr=jband). 2001-02-14 22:33:26 +00:00
brendan%mozilla.org
cefe9bfa0d Don't assert about leaked atoms, do DEBUG fprints instead (68765, r=timeless, sr=jband). 2001-02-14 22:25:30 +00:00
brendan%mozilla.org
8aa6c94c12 Crash fix (first part, two more files to come) for old-style obj.eval in a function (68498, r=bryner, sr=jband). 2001-02-14 09:11:09 +00:00
dprice%netscape.com
997fb091c7 65845 first cut of the order files 2001-02-13 02:48:02 +00:00
brendan%mozilla.org
5fcc8a1adc - Keep interned string atoms around across zero-context episodes on a runtime,
until JS_DestroyRuntime is called (68450, r=rginda, sr=jband).
- NUL-terminate tagbuf in tagify, for the HTML helpers such as string.big()
  (66648, r=timeless, sr=jband).
2001-02-13 00:57:10 +00:00
beard%netscape.com
7f321c0039 fix for bug #63466, r=mstoltz, sr=brendan, a=leaf 2001-02-12 07:47:28 +00:00
brendan%mozilla.org
e23a1be36f Fix for bug 44009 (r=rogerl, sr=shaver)
- Remove bogus JS_ASSERT(!outermost) from the code that deals with a "#n="
  type string being returned from js_EnterSharpObject, where the hash entry
  is not yet sharp (because we haven't seen the object twice during depth
  first search).  This case trivially arises for the outermost object in,
  e.g., 'o={}; o.foo=o; uneval(o)'.
- Avoid parenthesizing #n={...} object initializers for uneval, as they are
  not ambiguous (whereas {foo:1}, e.g., is ambiguous because it could be a
  block statement containing a labeled expression statement, or it could be
  an object initializer).
- Death to tabs!
2001-02-06 23:19:44 +00:00
brendan%mozilla.org
b28624e231 Fix compile-statements-as-we-go to work with warn-about-missing-final-return (66928, r=jband, sr=shaver). 2001-02-06 01:23:29 +00:00
jband%netscape.com
ab1f2436af fix bug 67557 - bad use of NS_LITERAL_STRING to initialize static const PRUnichar* literals. r=jag sr=brendan 2001-02-04 06:47:44 +00:00
cls%seawood.org
02d1ad6807 Fix fdlibm/mozjs dependency problem by making sure that fdlibm is always built before mozjs. 2001-02-04 06:27:59 +00:00
brendan%mozilla.org
eabd8c6171 Include function total size in JS profiler output (67467, r=hyatt, sr=jband). 2001-02-02 20:52:06 +00:00
mkaply%us.ibm.com
a36df8834a OS/2 TB breakage
Need cast to pass C++ function
2001-02-02 13:54:03 +00:00
jband%netscape.com
bd58ec8cea the rest of the fix for bug 66950 to add nsISupportsWeakReference support of xpconnect wrapped JSObjects. r=rogerl sr=brendan 2001-02-02 10:01:56 +00:00
jband%netscape.com
e7fcc8fd7f the rest of the fix for bug 67258 to avoid empry Components.results and the similar pattern in nsJSIID. r=dmose sr=brendan 2001-02-02 08:57:47 +00:00
jband%netscape.com
8ccfada88a backing out two changed inadvertantly committed! 2001-02-02 08:52:22 +00:00
jband%netscape.com
1d263ae630 part of the fix for bug 67258 to avoid empry Components.results. r=dmose sr=brendan xpccomponents.cpp 2001-02-02 08:48:28 +00:00
jband%netscape.com
39d156eef0 part of the fix to bug 66950. Add support for cheaply tracking the lifetime of arbitrary JSObject by extending the GC callback mechanism to notify after marking is done but before sweeping, and by providing an api function that can be called at that point to determine if any given gcthing is about to be finalized. r=rogerl sr=brendan 2001-02-02 08:44:24 +00:00
mkaply%us.ibm.com
63b9a9f4be OS/2 TB break
Need JS_STATIC_DLL_CALLBACK
2001-02-01 18:39:38 +00:00
disttsc%bart.nl
91a08f8c82 Fix senna bustage, add REQUIRES line. r=mkaply 2001-02-01 18:07:08 +00:00
sspitzer%netscape.com
e21ba186fe fix for #67205. get --enable-xpctools to work again.
it will build the JS profiler.  r=leaf,bryner, sr=cls
2001-02-01 15:36:59 +00:00
mkaply%us.ibm.com
77c253f1d3 Putting it back until I figure out the bustage 2001-02-01 00:03:12 +00:00
mkaply%us.ibm.com
1c00ee937b OS/2 only
r=dbaron
Add static to OS/2 JS_STATIC_CALLBACK so I don't break the build like I did yesterday
2001-01-31 23:40:42 +00:00
mkaply%us.ibm.com
2ae966c468 #59855
r=mccabe, sr=brendan
Proper building of fdlibm standalone
2001-01-31 23:26:00 +00:00
mkaply%us.ibm.com
71b9af79d7 #59855
r=mccabe, sr=brendan
OS/2 needs fdlibm copysign
2001-01-31 23:24:27 +00:00
mkaply%us.ibm.com
b8c9156ead #59855
r=mccabe, sr=brendan
Fix Javascript to get Endianness from jstypes.h
2001-01-31 23:23:42 +00:00
mkaply%us.ibm.com
ab94da8892 #59855
r=mccabe, sr=brendan
Fix Javascript to get Endianness from jstypes.h - start with a Makefile change and let it cycle once
2001-01-31 21:07:16 +00:00
dveditz%netscape.com
d08f7df315 enable win32 XPC_TOOLS_SUPPORT environment var to turn on js profiler hooks. r=mcafee,sr=jband 2001-01-31 03:26:31 +00:00
jband%netscape.com
3ad4de6403 NOT PART OF THE BUILD - simple observer test to demonstrate use of weak references 2001-01-31 02:32:39 +00:00
brendan%mozilla.org
d0385b286a Throw EvalError for indirect eval calls iff strict+werror (38512, r=rogerl, sr=shaver). 2001-01-31 01:12:15 +00:00
dbaron%fas.harvard.edu
7563888641 Attempt to fix build bustage from mkaply's checkin. r=kin 2001-01-30 16:31:43 +00:00
mkaply%us.ibm.com
81fac91d51 #62003
r=mccabe, sr=brendan
Fixing up some Javascript CALLBACKs
2001-01-30 15:53:38 +00:00
mkaply%us.ibm.com
7792e217c6 #62003
r=mccabe, sr=brendan
Fixing up some Javascript CALLBACKs
2001-01-30 15:43:35 +00:00
brendan%mozilla.org
1cae579899 Better branch callback failure message. 2001-01-29 20:32:57 +00:00
brendan%mozilla.org
56fdf600c3 Make branch callback optional, parameterize its limit, and give a warning when it fails. 2001-01-29 20:27:30 +00:00
brendan%mozilla.org
bb40b036ad Fixes for bug 33390 (r=mccabe, sr=shaver)
- Optimize compile (parse+emit) operation to generate code for each top-level
  statement or function in turn, recycling JSParseNodes as we go for greatly
  reduced "long linear script" footprint.
- Fix O(n**2) growth problems in bytecode and srcnote generation.
- Add js_ParseTokenStream entry point to compiler, for tree-generation without
  code-generation.  Move JSOP_EVAL instruction selection from code-generator to
  parser, to match other such specializations and enable js_ParseTokenStream.
- Fix js_CompileTokenStream (and get it right in new js_ParseTokenStream) to
  respect JSOPTION_VAROBJFIX.
- Clean up bracing, multi-line conditions, and overlong lines.
2001-01-27 08:00:45 +00:00
rogerl%netscape.com
8b06bc1a3a Fixes for bugs #66234 (57572, 57631, 61266, 61766) sr=brendan, r=mccabe,
r=rginda,r=rogerl. Also 60925, 60926 by virtue of being subsumed by above.
2001-01-27 00:31:32 +00:00
jband%netscape.com
616b6cca1a fix jump in leaks caused by previous checkin by commenting out the offending code that roots Object.prototype 2001-01-26 08:02:23 +00:00
jband%netscape.com
61a7d5b1fd backing out the unreviewed change to the loader for bug 63027 that I checked in with the other xpconnect changes by mistake. 2001-01-26 02:35:22 +00:00
jband%netscape.com
ea496b8199 add xpidl support for DOMString to fix bug 65762. r=jst sr=brendan 2001-01-26 02:32:18 +00:00
jband%netscape.com
abc6bd8a0b This is mostly to fix bug 64111 - XPConnect vs. Object.prototype.toSource woes.
Some other small fixes are included. Here is the list...

- Make nsIJSID::id [noscript] because xpconnect automatically builds a nsIJSID
wrapper around nsid values. However, xpconnect does not maintain a table of
those wrappers. So, given the same id twice it will make two nsIJSID wrappers.
This means that property walking could get foo.id.id.id... and not detect that
the different objects represent the same id. nsIJSID already exposes 'number'
so that JS can get the stringified value of the nsid. The nsid struct returned
by 'id' is useful for C++, but only causes problems for JS.

- Fix the nsIXPCScriptable 'IGNORE' handler for GetAttributes to not fail
silently.

- Add 'Components' to global objects as a non-enumerable property for backwards
compatibility and to avoid additional work in property enumeration (esp. in
win.toSource!)

- Expose toSource on wrapped native JSObjects. This just returns an empty object
string: '{}'. It can be overridden by an interface method if present.

- Expose toString on wrapped native JSObjects. It can be overridden by an
interface method if present. Previously we only did this as part of the
Convert op. Now someWrapper.toString will return a callable function.

- Extend the toString behaviour to also print the address of the wrapper in
DEBUG builds only: e.g. "xpconnect wrapped nsIFoo @ 0x12345678". mccabe
convinced me this would be useful. Release build behaviour is unchanged - we
worried that exposing addresses might contribute to possible security exploits.

- Have wrapped native JSObjects use Object.prototype as their proto rather than
have a null proto. Originally this was going to allow delegation to
Object.prototype.toSource, but even without that, this seems like a good thing.
This is implemented by getting Object.prototype from the global object each
time we create a wrapper to allow for spify JS dynamic craziness.

- Use 16bit values in wrappednative property descriptors to save space. It was
only possible to use 16 bits of the pointer-sized ints in the structs anyway.

- Do a security check at enumeration time and only expose those properties that
the caller can actually 'Get'. This fixes the toSource security exception
problem.

- Add a big comment about the problem of reporting uncaught exceptions.

- Fix crashing bug for case where object has no enumerable properties and
xpconnect failed to fill in the zero count.

- Fix NewInstanceJSObject to dig in and find the 'ultimate' parent when
parenting new wrapper JSObject. The old scheme was ending up with hugely
long parent chains in some cases.

r=jst, sr=brendan
2001-01-26 02:25:09 +00:00
jband%netscape.com
5bc0005e33 WHITESPACE ONLY CHANGE. Detabbing this stuff cuz it bothers me (tabbing didn't match 'Mode' line's tab-width) 2001-01-26 01:53:22 +00:00
brendan%mozilla.org
d3c870640c Fixes for bug 61898 (which has morphed), r=rogerl, sr=jband.
- Optimize integer ++ and -- to avoid double-to-int, which is quite costly for
  some compilers (ftol on Windows with MSVC).
- Optimized arguments[i] and arguments.length references to use bytecodes that
  avoid creating an arguments object for the current frame.  This entailed
  simplifying the compiler to avoid flagging functions and scripts that set
  arguments, since we have code in jsfun.c to catch such sets at runtime.
- The code generator now eliminates useless expression statements, giving a
  strict warning about them.
- Rationalized jsemit.c's LookupArgOrVar to have well-defined results in *pn.
  Eliminate bytecode specializations for argument and local variable gets and
  sets from jsparse.c -- these precede jsemit.c's LookupArgOrVar and frustrate
  it, by setting pn_slot non-negative too early.
- Code generation errors set report->filename and report->lineno, rather than
  hacking "{0}, line {1}: " into the localized message.
- Bogus JSFRAME_VAROBJBUG removed, JSOPTION_VAROBJFIX is sufficient.
- Spruce up jsinterp.c macros to use JS_BEGIN/END_MACRO brackets if possible.
- Avoid calling JS_PropertyStub.  The call is too costly compared to a branch
  in the caller.
2001-01-26 00:59:50 +00:00
sspitzer%netscape.com
cf94df1c3e back out brendan (Career Limiting Move) to fix blocker bug #66545.
a=leaf
2001-01-25 18:06:57 +00:00
brendan%mozilla.org
363c8fd51c Fixes for bug 61898 (which has morphed), r=rogerl, sr=jband.
- Optimize integer ++ and -- to avoid double-to-int, which is quite costly for
  some compilers (ftol on Windows with MSVC).
- Optimized arguments[i] and arguments.length references to use bytecodes that
  avoid creating an arguments object for the current frame.  This entailed
  simplifying the compiler to avoid flagging functions and scripts that set
  arguments, since we have code in jsfun.c to catch such sets at runtime.
- The code generator now eliminates useless expression statements, giving a
  strict warning about them.
- Rationalized jsemit.c's LookupArgOrVar to have well-defined results in *pn.
- Code generation errors set report->filename and report->lineno, rather than
  hacking "{0}, line {1}: " into the localized message.
- Bogus JSFRAME_VAROBJBUG removed, JSOPTION_VAROBJFIX is sufficient.
- Spruce up jsinterp.c macros to use JS_BEGIN/END_MACRO brackets if possible.
- Avoid calling JS_PropertyStub.  The call is too costly compared to a branch
  in the caller.
2001-01-25 09:22:19 +00:00
beard%netscape.com
99bfc80f2d [not part of build] Added UTCUtils to reflect new dependencies in JS engine. 2001-01-23 19:54:49 +00:00
brendan%mozilla.org
ab05798b67 Followup to last checkin, comment change only, r=mccabe. 2001-01-20 02:02:48 +00:00
brendan%mozilla.org
499dcb0009 2nd attempt: Fix API botch where 'var x=0' vs. 'x=0' could put x in a different object (65553, r=mccabe, sr=jband). 2001-01-20 01:41:55 +00:00