Bug 713183 - Make JSOP_*PROP and JSOP_*NAME store a PropertyName immediate, not a JSAtom immediate, and take advantage of this fact. r=bhackett

This commit is contained in:
Jeff Walden
2011-12-27 02:27:02 -06:00
parent 4fb989ba7f
commit bf676fbb62
17 changed files with 531 additions and 504 deletions

View File

@@ -341,10 +341,19 @@ js_GetIndexFromBytecode(JSScript *script, jsbytecode *pc, ptrdiff_t pcoff);
#define GET_ATOM_FROM_BYTECODE(script, pc, pcoff, atom) \
JS_BEGIN_MACRO \
JS_ASSERT(*(pc) != JSOP_DOUBLE); \
JS_ASSERT(js_CodeSpec[*(pc)].format & JOF_ATOM); \
uintN index_ = js_GetIndexFromBytecode((script), (pc), (pcoff)); \
(atom) = (script)->getAtom(index_); \
JS_END_MACRO
#define GET_NAME_FROM_BYTECODE(script, pc, pcoff, name) \
JS_BEGIN_MACRO \
JSAtom *atom_; \
GET_ATOM_FROM_BYTECODE(script, pc, pcoff, atom_); \
JS_ASSERT(js_CodeSpec[*(pc)].format & (JOF_NAME | JOF_PROP)); \
(name) = atom_->asPropertyName(); \
JS_END_MACRO
#define GET_DOUBLE_FROM_BYTECODE(script, pc, pcoff, dbl) \
JS_BEGIN_MACRO \
uintN index_ = js_GetIndexFromBytecode((script), (pc), (pcoff)); \