Re-land patch for bug 458851 now that latent bug it uncovered (not filed; see hg log) is fixed.

This commit is contained in:
Brendan Eich
2008-10-28 14:04:29 -07:00
parent e122ea9082
commit 4a4c3d3d3a
9 changed files with 267 additions and 303 deletions

View File

@@ -97,7 +97,7 @@ typedef enum JSOp {
#define JOF_INC (2U<<10) /* increment (++, not --) opcode */
#define JOF_INCDEC (3U<<10) /* increment or decrement opcode */
#define JOF_POST (1U<<12) /* postorder increment or decrement */
#define JOF_FOR (1U<<13) /* for-in property op */
#define JOF_FOR (1U<<13) /* for-in property op (akin to JOF_SET) */
#define JOF_ASSIGNING JOF_SET /* hint for JSClass.resolve, used for ops
that do simplex assignment */
#define JOF_DETECTING (1U<<14) /* object detection for JSNewResolveOp */
@@ -118,8 +118,6 @@ typedef enum JSOp {
#define JOF_TMPSLOT_SHIFT 22
#define JOF_TMPSLOT_MASK (JS_BITMASK(2) << JOF_TMPSLOT_SHIFT)
#define JOF_RETVAL (1U<<24) /* op leaves jsval return value on stack */
/* Shorthands for type from format and type from opcode. */
#define JOF_TYPE(fmt) ((fmt) & JOF_TYPEMASK)
#define JOF_OPTYPE(op) JOF_TYPE(js_CodeSpec[op].format)