@@ -45,11 +45,19 @@ PyObject *JSArrayIterProxyMethodDefinitions::JSArrayIterProxy_next(JSArrayIterPr
4545 return NULL ;
4646 }
4747
48- if ((self->it .reversed && self->it .it_index >= 0 ) || (!self->it .reversed && self->it .it_index < JSArrayProxyMethodDefinitions::JSArrayProxy_length ((JSArrayProxy *)seq))) {
49- JS::RootedValue *elementVal = new JS::RootedValue (GLOBAL_CX);
50- self->it .it_index += self->it .reversed ? -1 : 1 ;
51- JS_GetElement (GLOBAL_CX, ((JSArrayProxy *)seq)->jsArray , self->it .it_index , elementVal);
52- return pyTypeFactory (GLOBAL_CX, new JS::RootedObject (GLOBAL_CX, JS::GetNonCCWObjectGlobal (((JSArrayProxy *)seq)->jsArray )), elementVal)->getPyObject ();
48+ if (self->it .reversed ) {
49+ if (self->it .it_index >= 0 ) {
50+ JS::RootedValue *elementVal = new JS::RootedValue (GLOBAL_CX);
51+ JS_GetElement (GLOBAL_CX, ((JSArrayProxy *)seq)->jsArray , self->it .it_index --, elementVal);
52+ return pyTypeFactory (GLOBAL_CX, new JS::RootedObject (GLOBAL_CX, JS::GetNonCCWObjectGlobal (((JSArrayProxy *)seq)->jsArray )), elementVal)->getPyObject ();
53+ }
54+ }
55+ else {
56+ if (self->it .it_index < JSArrayProxyMethodDefinitions::JSArrayProxy_length ((JSArrayProxy *)seq)) {
57+ JS::RootedValue *elementVal = new JS::RootedValue (GLOBAL_CX);
58+ JS_GetElement (GLOBAL_CX, ((JSArrayProxy *)seq)->jsArray , self->it .it_index ++, elementVal);
59+ return pyTypeFactory (GLOBAL_CX, new JS::RootedObject (GLOBAL_CX, JS::GetNonCCWObjectGlobal (((JSArrayProxy *)seq)->jsArray )), elementVal)->getPyObject ();
60+ }
5361 }
5462
5563 self->it .it_seq = NULL ;
0 commit comments