summaryrefslogtreecommitdiff
path: root/www/firefox/files/patch-ff-474536
blob: 7c9bb70ee2d6431feb087f18da04cbdc6058ba3a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
diff -U 8 -p -r3.181.2.104 jsinterp.c
--- js/src/jsinterp.c	20 Oct 2008 15:43:57 -0000	3.181.2.104
+++ js/src/jsinterp.c	2 Apr 2009 14:44:48 -0000
@@ -4722,21 +4722,21 @@ interrupt:
 
             /*
              * Try to optimize a property we either just created, or found
              * directly in the global object, that is permanent, has a slot,
              * and has stub getter and setter, into a "fast global" accessed
              * by the JSOP_*GVAR opcodes.
              */
             if (atomIndex < script->numGlobalVars &&
-                (attrs & JSPROP_PERMANENT) &&
                 obj2 == obj &&
                 OBJ_IS_NATIVE(obj)) {
                 sprop = (JSScopeProperty *) prop;
-                if (SPROP_HAS_VALID_SLOT(sprop, OBJ_SCOPE(obj)) &&
+                if ((sprop->attrs & JSPROP_PERMANENT) &&
+                    SPROP_HAS_VALID_SLOT(sprop, OBJ_SCOPE(obj)) &&
                     SPROP_HAS_STUB_GETTER(sprop) &&
                     SPROP_HAS_STUB_SETTER(sprop)) {
                     /*
                      * Fast globals use fp->vars to map the global name's
                      * atomIndex to the permanent fp->varobj slot number,
                      * tagged as a jsval.  The atomIndex for the global's
                      * name literal is identical to its fp->vars index.
                      */