Commit Graph

3517 Commits

Author SHA1 Message Date
Nicholas Nethercote
e114b226dc Bug 1259194 (part 4) - Separate js::ObjectOps from js::Class. r=efaust,mrbkap,bz.
js::ObjectOps is often all null. When it's not all null, it's often duplicated
many times among classes. By pulling it out into its own struct, and using a
(possibly null) pointer in js::Class, we can save 208 KiB per process on
64-bit, and half that on 32-bit.

--HG--
extra : rebase_source : 5be8fe45f652392571b8a6d7b63777cbafba6ae4
2016-03-24 07:00:29 +11:00
Nathan Froyd
cccdd9fbca Bug 1177488 - use |const char*| for representing async call reasons; r=bz,fitzgen
Using a simple |const char*| is more memory-efficient than allocating a
JS string. We still have to allocate the JS string for passing things
into JS, but ideally we will be able to move the point of allocation
much closer to where it's actually needed, rather than indiscriminantly
doing it all the time.
2016-03-23 10:40:53 -04:00
Boris Zbarsky
4622df74e0 Bug 1104955 part 3. Pass our unscopable names to CreateInterfaceObjects and have it define the right thing on the prototype. r=khuey 2016-03-29 15:50:38 -04:00
Boris Zbarsky
99babb71e8 Bug 1104955 part 2. Make codegen output a list of unscopable names that we can then pass to CreateInterfaceObjects. r=khuey
Note that this does not take into account the exposed/enabled state of the
relevant properties.  This should be OK, I hope.  Taking that state into account
would be rather annoying, unfortunately.  We could make codegen fail if
something is conditionally exposed and unscopable, if desired...
2016-03-29 15:49:48 -04:00
Boris Zbarsky
052df2b3f5 Bug 1104955 part 1. Add parsing for [Unscopeable] in IDL. r=khuey 2016-03-29 15:49:45 -04:00
Nicholas Nethercote
c01058efe7 Bug 1259194 (part 1) - Add 's' prefixes to some statics generated for dom bindings. r=bz.
This makes Class, PrototypeClass and InterfaceObjectClass match existing cases
like sAttributes{,_ids,specs}, sNativeProperties, sNativePropertyHooks.
2016-03-24 06:48:44 +11:00
Wes Kocher
ea76ed99d7 Backed out changeset 95494e68c722 (bug 1177488) for crashes in test_bug732665.xul CLOSED TREE
MozReview-Commit-ID: IFUHUBUCnCD
2016-03-25 12:11:48 -07:00
Boris Zbarsky
d8d55b4579 Bug 1259545. Remove the JS_SaveFrameChain bits in CallbackObject error reporting, since they are no longer needed. r=bholley
The code this is working around no longer exists.
2016-03-25 11:11:20 -04:00
Nathan Froyd
418aa2af4f Bug 1177488 - use |const char*| for representing async call reasons; r=bz,fitzgen
Using a simple |const char*| is more memory-efficient than allocating a
JS string. We still have to allocate the JS string for passing things
into JS, but ideally we will be able to move the point of allocation
much closer to where it's actually needed, rather than indiscriminantly
doing it all the time.
2016-03-23 10:40:53 -04:00
Jonathan Watt
d274717f72 Bug 1259172 - Fix assertion in Codegen.py's InitUnforgeablePropertiesOnHolder function. r=bz 2016-03-04 16:24:16 +00:00
Nicholas Nethercote
f80479d54a Bug 1011826 - Split Prefable into two pieces. r=bz.
The fields in Prefable relating to disabling are usually all zero. This patch
moves them into a new struct PrefableDisablers. This reduces static data size
by 92 KB, which applies to every process. It might also make isEnabled() faster
because the common case only involves one test instead of two.

--HG--
extra : rebase_source : 004eb8221e23b741c4837dd95af93e437edb4587
2016-03-24 06:09:24 +11:00
Andrea Marchesini
931f576f19 Bug 1246091 - patch 4/7 - Expose ConsoleCallData to WorkerDebuggerGlobalScope, r=ejpbruel 2016-03-23 22:55:07 +01:00
Andrea Marchesini
e2091ba30e Bug 1246091 - patch 2/7 - Propagate initialization error in Console.cpp, r=ejpbruel 2016-03-23 22:55:07 +01:00
Nicholas Nethercote
a299ce6d78 Bug 1258924 - Reorder DOMIfaceAndProtoJSClass fields to reduce padding. r=bz.
On 64-bit this reduces sizeof(DOMIfaceAndProtoJSClass) from 336 to 328, saving
20 KiB. On 32-bit it should save half that.
2016-03-24 05:54:38 +11:00
Boris Zbarsky
25c4270d09 Bug 1258585. Remove some remaining vestiges of WebIDL quickstubs. r=peterv 2016-03-23 17:46:26 -04:00
Boris Zbarsky
8b4ef1c72e Bug 1255817 part 6. Fix up some comments in CallbackObject that refer to things that no longer exist. r=bholley 2016-03-23 11:44:55 -04:00
Boris Zbarsky
e3b2de6aa9 Bug 1255817 part 2. Get rid of AutoJSAPI::OwnsErrorReporting and AutoJSAPI::TakeOwnershipOfErrorReporting. r=bholley 2016-03-23 11:44:54 -04:00
Boris Zbarsky
ede5a13ec4 Bug 1257725 part 5. Get rid of ThreadsafeAutoJSContext usage in IDBRequest::CaptureCaller. r=khuey 2016-03-23 11:02:57 -04:00
Boris Zbarsky
5140ac5aae Bug 1257725 part 1. Get rid of ThreadsafeAutoJSContext usage in JSEventHandler::HandleEvent. r=smaug 2016-03-23 11:02:57 -04:00
Boris Zbarsky
bc347a401b Bug 1257919 part 10. Make the caller and formattedStack getters on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:35 -04:00
Boris Zbarsky
dde5cae5bb Bug 1257919 part 9. Make the asyncCause/asyncCaller getters on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
42b3bbe27a Bug 1257919 part 8. Make the line/column number getters on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
54987c5cc1 Bug 1257919 part 7. Make the name getter on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
efa07c06d1 Bug 1257919 part 6. Make the filename getter on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
ecd56b7ee6 Bug 1257919 part 5. Get rid of the now-unused StackFrame class. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
655d4654c8 Bug 1257919 part 4. Stop returning StackFrame instances from exceptions::CreateStack. C++ callers of GetCurrentJSStack or exceptions::CreateStack always check for null anyway, and none of them seem to want this non-JS thing. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
12ede800fa Bug 1257919 part 3. Make the various toString methods on exceptions take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Sebastian Hengst
055a2f1834 Backed out changeset 6403c45366e0 (bug 1257919) 2016-03-22 21:10:55 +01:00
Sebastian Hengst
60e4be8fc0 Backed out changeset 1b5db6edd791 (bug 1257919) 2016-03-22 21:10:45 +01:00
Sebastian Hengst
dac1daf443 Backed out changeset 83dfa9e03d0e (bug 1257919) 2016-03-22 21:10:37 +01:00
Sebastian Hengst
0e9bf1445a Backed out changeset 6e95ee3cd4c6 (bug 1257919) 2016-03-22 21:10:21 +01:00
Sebastian Hengst
e6e4d30446 Backed out changeset c4faeb0be959 (bug 1257919) 2016-03-22 21:10:12 +01:00
Sebastian Hengst
336c2cc4ae Backed out changeset 08f1c7239cdf (bug 1257919) 2016-03-22 21:10:01 +01:00
Sebastian Hengst
d5e963398d Backed out changeset cf816f733296 (bug 1257919) 2016-03-22 21:09:53 +01:00
Sebastian Hengst
8b2bf79a7a Backed out changeset ff81c52375ba (bug 1257919) 2016-03-22 21:09:32 +01:00
Boris Zbarsky
8062407932 Bug 1257919 part 10. Make the caller and formattedStack getters on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:35 -04:00
Boris Zbarsky
eea8812d6b Bug 1257919 part 9. Make the asyncCause/asyncCaller getters on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
5df498fbd2 Bug 1257919 part 8. Make the line/column number getters on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
cc563df19f Bug 1257919 part 7. Make the name getter on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
38af226a36 Bug 1257919 part 6. Make the filename getter on JSStackFrame take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
f42db79269 Bug 1257919 part 5. Get rid of the now-unused StackFrame class. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
8ba7a0b580 Bug 1257919 part 4. Stop returning StackFrame instances from exceptions::CreateStack. C++ callers of GetCurrentJSStack or exceptions::CreateStack always check for null anyway, and none of them seem to want this non-JS thing. r=khuey 2016-03-22 13:50:31 -04:00
Boris Zbarsky
8ef4cc7c3d Bug 1257919 part 3. Make the various toString methods on exceptions take an explicit JSContext. r=khuey 2016-03-22 13:50:31 -04:00
Daisuke Akatsuka
f479d03a6b Bug 1253470 - Part 4: Produce console warnings for invalid easing. r=birtles 2016-03-18 16:28:22 +09:00
Daisuke Akatsuka
a152d59824 Bug 1253470 - Part 1: Produce console warnings for invalid duration. r=birtles 2016-03-18 10:07:10 +09:00
Tom Schuster
ed7a4103c8 Bug 1256688 - Change BPH::has to follow [[HasProperty]] for ordinary objects. r=jorendorff 2016-03-19 01:30:03 +01:00
Kyle Huey
2fc599905e Bug 1257355: Remove the worker descriptor for WorkerNavigator. r=bz
--HG--
rename : dom/workers/Navigator.cpp => dom/workers/WorkerNavigator.cpp
rename : dom/workers/Navigator.h => dom/workers/WorkerNavigator.h
2016-03-18 14:15:46 -07:00
Boris Zbarsky
172598b4e2 Bug 1257335. Replace some AutoSafeJSContext uses with AutoJSAPI or AutoJSContext uses. r=bholley
In general, using an AutoJSAPI inited with an object is NOT the same as using
AutoSafeJSContext (or AutoJSAPI inited without an object) and then entering the
compartment of the object: the former will report exceptions to the global of
the object as it comes off the stack, while the latter will not.  This only
really matters if we have an object from a window or worker global and hence
might fire error events, or report internal stuff to the web console.

The changes to initing with an object made in this bug are OK for the following
reasons:

1) dom/base/Console.cpp: Always clears its exception before coming off the stack.
2) dom/base/nsDOMClassInfo.cpp: Inits with a non-web global.
3) dom/base/nsFrameMessageManager.cpp: Inits with a non-web global.
4) dom/media/MediaPermissionGonk.cpp: We probably want the caller to notice if
   anything here throws.
5) dom/xbl/nsXBLPrototypeBinding.cpp: Inits with a non-web global.
6) dom/xul/nsXULElement.cpp: Inits with a non-web global.
7) extensions/pref/autoconfig/src/nsJSConfigTriggers.cpp: Inits with a non-web global.
8) ipc/testshell/XPCShellEnvironment.cpp: Inits with a non-web global.
2016-03-18 10:48:38 -04:00
Wes Kocher
ef118686fd Backed out changeset 057ffdc30f1e (bug 1257355) for build bustage CLOSED TREE
MozReview-Commit-ID: 6e53Rrv5mEz

--HG--
rename : dom/workers/WorkerNavigator.cpp => dom/workers/Navigator.cpp
rename : dom/workers/WorkerNavigator.h => dom/workers/Navigator.h
2016-03-17 15:38:39 -07:00
Kyle Huey
bee42d87b9 Bug 1257355: Remove the worker descriptor for WorkerNavigator. r=bz
--HG--
rename : dom/workers/Navigator.cpp => dom/workers/WorkerNavigator.cpp
rename : dom/workers/Navigator.h => dom/workers/WorkerNavigator.h
2016-03-17 15:06:14 -07:00