rem: for (var i in inputs) { 
add: for (var i = 0; i < inputs.length; ++i) { 
context:     getUpstreamElements: function (element) {      var container = RSF.findForm(element);      var inputs = container.getElementsByTagName("input");      var name = element.name;        var fossil;      var bindings = new Array(); // an array of parsed bindings        var bindingex = /^(.*)-binding$/; // recognises el-binding as well as virtual-el-binding        for (var i in inputs) {        var input = inputs[i];        if (input.name || input.id) {          var name = input.name? input.name : input.id;          RSF.log("Discovered input name " + name + " value " + input.value);          if (isFossil(element, input)) {            fossil = RSF.parseFossil(input.value);            fossil.element = input;            RSF.log("Own Fossil " + fossil.lvalue + " oldvalue " + fossil.oldvalue);            }          var matches = name.match(bindingex);          if (matches != null) {            var binding = RSF.parseBinding(input.value, matches[0]);            RSF.log("Binding lvalue " + binding.lvalue + " " + binding.rvalue);            binding.element = input;            bindings.push(binding);            }          }        }      // a map of EL expressions to DOM elements      var invalidated = new Object();      invalidated.list = new Array();      invalidate(invalidated, fossil.lvalue, fossil.element);      RSF.log("Beginning invalidation sweep from initial lvalue " + fossil.lvalue);         // silly O(n^2) algorithm - writing graph algorithms in Javascript is a pain!      while (true) {        var expanded = false;        for (var i in bindings) {          var binding = bindings[i];          if (isInvalidated(invalidated, binding.rvalue)) {            invalidate(invalidated, binding.lvalue, binding.element);            expanded = true;            }            delete bindings[i];          }        if (!expanded) break;        }      return invalidated.list;      }, // end getUpstreamElements
meta: 13	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/13/309671e4155e37e2cb73f3119f53981ce5445703/rsf.js/buggy/rsf-web/templates/src/webapp/content/js/rsf.js