Commit Graph

48806 Commits

Author SHA1 Message Date
Jason Orendorff
533a4abf95 Bug 1153475 - Always ignore desc.object() in DefineProperty functions that take a PropertyDescriptor argument. r=efaust.
--HG--
extra : rebase_source : 0bb4a479d34fdb80c752ed840cc9a3fe7aaff261
2015-03-23 14:32:33 -05:00
Jason Orendorff
6ca2117844 Bug 1148750, part 17 - Remove ApplyOrDefaultAttributes. r=efaust.
At this point, each path through the code completely fills in desc, so the final call to ApplyOrDefaultAttributes is redundant. Note that AddOrChangeProperty begins with `desc.assertComplete()`, so we'll find out soon enough if this is not the case.

--HG--
extra : rebase_source : 063ad1ed19bcdc8bad4f5855cdc3e86661a66415
2015-04-03 09:00:21 -05:00
Jason Orendorff
855d0b2d23 Bug 1148750, part 16 - Implement ValidateAndApplyPropertyDescriptor step 9 (redefining an existing accessor property). Remove CheckAccessorRedefinition. r=efaust.
--HG--
extra : rebase_source : 95fe6cfcf4114ba3ce254f1e0983a9760931f2fc
2015-04-09 15:27:09 -05:00
Jason Orendorff
c0b45567bf Bug 1148750, part 15 - Stop retaining getter and setter ops when redefining a data property. r=efaust.
StandardDefineProperty already does this. In short, redefining a magical data property like array.length or an arguments element should make it nonmagical.

In fact, it is an engine invariant that Shapes have either both JSPROP_GETTER and JSPROP_SETTER or neither: they never have e.g. a setter object and a getter op. As of recently the GC depends on this. So this change is necessary for memory safety.

--HG--
extra : rebase_source : 4cf6bed2978011296178d621026f33731b3c5e10
2015-04-03 12:58:50 -05:00
Jason Orendorff
9bca040d64 Bug 1148750, part 14 - Reject redefining a non-writable non-configurable data property to have a different value. r=efaust.
--HG--
extra : rebase_source : e8dbe70a7df15364290824ffd8a6524fdc86bf61
2015-04-03 16:25:12 -05:00
Jason Orendorff
0fa28b1187 Bug 1148750, part 13 - Simplify code to fill in desc.writable, if not present, from the existing shape. r=efaust.
--HG--
extra : rebase_source : 90ec845eafe133e257620dc94bcf5fec60354d44
2015-04-09 16:30:13 -05:00
Jason Orendorff
6c67d2bff2 Bug 1148750, part 12 - Reject redefinition of non-writable non-configurable data property as writable. This fixes bug 1073808. r=efaust.
--HG--
extra : rebase_source : 6124570135dab0d6143cc4c2f1916f4ac45d6e70
2015-04-09 15:55:37 -05:00
Jason Orendorff
5b475c41ee Bug 1148750, part 11 - Remove some code for TypedArray cases rendered unreachable by part 1 of this bug. r=efaust.
--HG--
extra : rebase_source : b6daef1d670c75f28060888b0972146988180a6b
2015-04-09 15:33:38 -05:00
Jason Orendorff
cef74f53ce Bug 1148750, part 10 - js::NativeDefineProperty: Swap the order of the cases in the remaining old code. r=efaust.
--HG--
extra : rebase_source : 729247a3f8a96f57574b3a9b7373cb28ae2216b9
2015-04-09 15:25:56 -05:00
Jason Orendorff
411d9d0392 Bug 1148750, part 9 - Implement ValidateAndApplyPropertyDescriptor step 7. r=efaust.
The new code takes over some cases that used to be handled by each of the three cases that follow it. Therefore there are changes in all three cases, particularly the desc.isAccessorDescriptor() case, which no longer needs the sparsify code.

--HG--
extra : rebase_source : a0cdf49f67ca6baaf5bbbd7b793704dd2c62506a
2015-04-09 15:19:02 -05:00
Jason Orendorff
cfea102bd9 Bug 1148750, part 8 - Implement ValidateAndApplyPropertyDescriptor step 6. r=efaust.
This also makes some changes to MutableHandle<PropertyDescriptor>, for convenience:

*   Make desc.setGetterObject() and desc.setSetterObject() quietly change *this from a generic or data descriptor into an accessor descriptor, if need be.

*   Make setWritable() clear the JSPROP_IGNORE_READONLY bit if present. (Breaking the symmetry a bit, it won't change *this from an accessor descriptor to a data descriptor. Instead, it asserts you're not doing that.)

--HG--
extra : rebase_source : 2a7cf3d477553838248bfa8bb183985ee369a22e
2015-04-09 14:17:38 -05:00
Jason Orendorff
28e3620074 Bug 1148750, part 7 - Fill in configurable and enumerable. r=efaust.
This changes MutableHandle<PropertyDescriptor>::setEnumerable() to take a boolean argument, and makes it unconditionally clear JSPROP_IGNORE_ENUMERATE, as a convenience. A similar setConfigurable() method is also added.

--HG--
extra : rebase_source : 5cfaba30965d36057215de2ccbce91ab9991b32e
2015-04-09 14:59:39 -05:00
Jason Orendorff
30649575ba Bug 1148750, part 6 - Implement ValidateAndApplyPropertyDescriptor up to step 5. r=efaust.
--HG--
extra : rebase_source : 7c69f9fca2c8d3d7a3c58cf1a4f74e10f428c01c
2015-04-09 14:18:24 -05:00
Jason Orendorff
ac3bb736b4 Bug 1148750, part 5 - CompletePropertyDescriptor upgrade. r=efaust.
--HG--
extra : rebase_source : 2da8450bb190537bc70858d78116f9d40e853569
2015-04-09 14:13:15 -05:00
Jason Orendorff
e182c673aa Bug 1148750, part 4 - Strip out redundant if-conditions in parts of NativeDefineProperty where shape can't be null. r=efaust.
--HG--
extra : rebase_source : a88891aa9074ba0e4c9bbcdd2d62768658a4614b
2015-04-09 14:28:17 -05:00
Jason Orendorff
83668b30c9 Bug 1148750, part 3 - Implement ValidateAndApplyPropertyDescriptor step 2. r=efaust.
The new comment "Filling in desc:" is aspirational for now, but it gradually becomes true in the subsequent patches in this bug.

--HG--
extra : rebase_source : eb00118ec0810c48cbf192cbabcbf83ed1eeb004
2015-04-09 14:09:01 -05:00
Jason Orendorff
f705529720 Bug 1148750, part 2 - Check extensibility in NativeDefineProperty. r=efaust.
--HG--
extra : rebase_source : ecd2b8cf35757f4415d024dae393cea818042090
2015-03-27 14:03:01 -05:00
Jason Orendorff
fb7d7c6d5e Bug 1148750, part 1 - Factor out the lookup common to three branches at the top of NativeDefineProperty. r=efaust.
The existing setup saves a branch. We can't keep it. All that code is about to be completely rewritten. In the standard algorithms, this check is not immediately followed by a branch on this particular condition (desc.hasValue()). Furthermore, to deal with resolve hooks properly, we will later change the condition of this if-statement to something like `if (resolving)`, which will not be something we can common up with any other branch in this function.

--HG--
extra : rebase_source : 5460d4d2704697c4c63b2bc5d4435601c97ad00a
2015-03-23 14:32:30 -05:00
Jason Orendorff
dc269c5505 Bug 1152106, part 2 - Make the global Components property configurable in cases where EnableUniversalXPConnect may later need to redefine it. r=bholley.
--HG--
extra : rebase_source : 72b7a9f613bda1024532a507c4b99ac504bc6352
2015-04-10 18:04:05 -05:00
Jason Orendorff
99666fb916 Bug 1152106, part 1 - Don't try to redefine the non-configurable global Components property when EnableUniversalXPConnect is called multiple times. r=bholley.
--HG--
extra : rebase_source : 6509b0adaaa6be10bfd9c696f2d4368946877990
2015-04-10 12:58:38 -05:00
Ehsan Akhgari
f9d798bcbd Bug 1156030 - Remove some obsolete static assertion macros from the tree; r=Waldo 2015-04-21 14:22:43 -04:00
Terrence Cole
2ccef0beed Bug 1154950 - Share permanent atom and well-known symbol marking; r=sfink
--HG--
extra : rebase_source : 900f7055dbd7e8509e1cac83a6fe12e48ac85a6d
2015-04-14 13:28:46 -07:00
Terrence Cole
bb428151a7 Bug 1154101 - Remove PushMarkStack indirection; r=sfink
--HG--
extra : rebase_source : 338200fcb26df111b3bbc667d8971db5c83a9fbf
2015-04-14 13:28:39 -07:00
Jon Coppeard
73014daec8 Bug 1156317 - Change the onOutOfMemory() interface is make it harder to misuse r=terrence 2015-04-21 16:08:39 +01:00
Jon Coppeard
31b2a173c7 Bug 1155455 - Relax assertion to take account of breakpoints added during incremental sweeping r=terrence 2015-04-21 16:08:36 +01:00
Ting-Yu Chou
c5bde34ddd Bug 1049290 - Optimize JSOP_IN for baseline compiler. r=djvj, r=h4writer
--HG--
extra : rebase_source : d2e9a9653a79db0b2489d625d5c7fe270c12d932
2015-04-18 07:54:10 +08:00
Tooru Fujisawa
8a4324be25 Bug 1153963 - Add telemetry for regexp.hasOwnProperty("source") and Object.getOwnPropertyDescriptor(regexp, "source") on non-release build. r=till 2015-04-21 20:04:38 +09:00
Steve Singer
0c3e227991 Bug 1156115 - Apply Bug 1135629 changes to the non-ion jit. r=nbp 2015-04-19 20:14:00 +02:00
Nick Fitzgerald
2df7081f54 Bug 1154079 - Add the allocated object's [[class]] name to the allocations log. r=shu
--HG--
extra : rebase_source : 4a74b6b591c273ead38b682777b9be4f6d4f3694
2015-04-17 15:22:00 +02:00
Lars T Hansen
8c317a09dd Bug 1154705 - clone test functions to trigger inlining. r=jandem 2015-04-21 06:39:16 +02:00
Lars T Hansen
555cb57d4d Bug 1156386 - UXTH instruction. r=dougc 2015-04-21 06:39:12 +02:00
Luke Wagner
76c069769d Bug 1154556 - OdinMonkey: fix staticalllyLink to handle cloned, profile-enabled code (r=bbouvier) 2015-04-20 22:59:34 -05:00
Luke Wagner
a74bda6c4a Bug 1154556 - OdinMonkey: simplify icache flushing (r=bbouvier) 2015-04-20 22:48:00 -05:00
Luke Wagner
fceca9b3b1 Bug 1154556 - OdinMonkey: remove a dead field from AsmJSActivation (r=bbouvier) 2015-04-20 22:43:59 -05:00
Terrence Cole
b1d40784e5 Bug 1154085 - Move eager scanning under the ambit of GCMarker::traverse; r=sfink
--HG--
extra : rebase_source : bd4fe231858ed531d229321078b2343947a62d2f
2015-04-14 13:28:39 -07:00
Nicolas B. Pierron
bdbd56c386 Bug 1155468 - Fix Register::GetName typedef issue with clang. r=jandem 2015-04-20 11:33:40 -07:00
Ryan VanderMeulen
b3bb684fd1 Backed out changeset 075804ae0a42 (bug 1154705) for SM(arm) crashes.
CLOSED TREE
2015-04-20 13:31:10 -04:00
Ehsan Akhgari
e847c415b3 Bug 1155393 - Port the -Wno-inline-new-delete option from configure.in to the JS configure script; r=dholbert 2015-04-20 13:05:01 -04:00
Lars T Hansen
b5286dc77d Bug 1154714 - don't check inline return type for Atomics.store. r=bbouvier 2015-04-20 18:21:05 +02:00
Lars T Hansen
e6215a47e5 Bug 1154705 - clone test functions to trigger inlining. r=jandem 2015-04-20 18:21:03 +02:00
Luke Wagner
9ea93715d5 Bug 1152280 - OdinMonkey: tighten changeHeap mask validation (r=bbouvier) 2015-04-20 09:14:08 -05:00
Tooru Fujisawa
42b7bb3cf1 Bug 1155081 - Part 13: Remove ThrowError intrinsic. r=till 2015-04-20 13:58:17 +09:00
Tooru Fujisawa
4805cc2cfd Bug 1155081 - Part 12: Replace ThrowError(JSMSG_TYPEDOBJECT_ARRAYTYPE_BAD_ARGS) with ThrowTypeError(JSMSG_TYPEDOBJECT_BAD_ARGS) in TypedObject.js. r=till 2015-04-20 13:58:17 +09:00
Tooru Fujisawa
17bf2e6e97 Bug 1155081 - Part 11: Replace ThrowError with ThrowTypeError in Utilities.js. r=till 2015-04-20 13:58:17 +09:00
Tooru Fujisawa
17dd56e97e Bug 1155081 - Part 10: Replace ThrowError for TypeError with ThrowTypeError in TypedObject.js. r=till 2015-04-20 13:58:17 +09:00
Tooru Fujisawa
1fab22a4d5 Bug 1155081 - Part 9: Replace ThrowError with ThrowTypeError in TypedArray.js. r=till 2015-04-20 13:58:17 +09:00
Tooru Fujisawa
a481482c10 Bug 1155081 - Part 8: Replace ThrowError with ThrowTypeError/ThrowRangeError in String.js. r=till 2015-04-20 13:58:17 +09:00
Tooru Fujisawa
6ddc8b1a6d Bug 1155081 - Part 7: Replace ThrowError with ThrowTypeError in RegExp.js. r=till 2015-04-20 13:58:17 +09:00
Tooru Fujisawa
836f41fa7e Bug 1155081 - Part 6: Replace ThrowError with ThrowTypeError in Object.js. r=till 2015-04-20 13:58:16 +09:00
Tooru Fujisawa
f0e8daf591 Bug 1155081 - Part 5: Replace ThrowError with ThrowTypeError in Map.js/Set.js/WeakSet.js. r=till 2015-04-20 13:58:16 +09:00