aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/analyzer.js9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/analyzer.js b/src/analyzer.js
index 677b61b0..526d0249 100644
--- a/src/analyzer.js
+++ b/src/analyzer.js
@@ -206,8 +206,9 @@ function analyzer(data) {
var more = true;
while (more) {
more = false;
- values(types).forEach(function(type) {
- if (type.flatIndexes) return;
+ for (var typeName in types) {
+ var type = types[typeName];
+ if (type.flatIndexes) continue;
var ready = true;
type.fields.forEach(function(field) {
if (isStructType(field)) {
@@ -223,14 +224,14 @@ function analyzer(data) {
});
if (!ready) {
more = true;
- return;
+ continue;
}
Runtime.calculateStructAlignment(type);
if (dcheck('types')) dprint('type (fat=' + !!fatTypes + '): ' + type.name_ + ' : ' + JSON.stringify(type.fields));
if (dcheck('types')) dprint(' has final size of ' + type.flatSize + ', flatting: ' + type.needsFlattening + ' ? ' + (type.flatFactor ? type.flatFactor : JSON.stringify(type.flatIndexes)));
- });
+ }
}
if (QUANTUM_SIZE === 1 && !fatTypes) {