@@ -45,19 +45,11 @@ PyObject *JSArrayIterProxyMethodDefinitions::JSArrayIterProxy_next(JSArrayIterPr
4545 return NULL ;
4646 }
4747
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- }
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 ();
6153 }
6254
6355 self->it .it_seq = NULL ;
0 commit comments