Chromium Code Reviews| Index: dart/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart |
| diff --git a/dart/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart b/dart/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart |
| index ae053a198240ea4c5c64582a17befe21e4e12937..b4444bb2781f25128de942991cab1d24dbeafc57 100644 |
| --- a/dart/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart |
| +++ b/dart/pkg/compiler/lib/src/js_emitter/old_emitter/reflection_data_parser.dart |
| @@ -57,11 +57,14 @@ jsAst.Expression getReflectionDataParser(OldEmitter oldEmitter, |
| function processClassData(cls, descriptor, processedClasses) { |
| var newDesc = {}; |
| var previousProperty; |
| - for (var property in descriptor) { |
| - if (!hasOwnProperty.call(descriptor, property)) continue; |
| + var properties = Object.keys(descriptor); |
| + var properties_length = properties.length; |
|
floitsch
2015/02/20 14:03:38
ditto.
ahe
2015/02/20 14:32:16
Done.
|
| + var property; |
|
floitsch
2015/02/20 14:03:38
ditto.
ahe
2015/02/20 14:32:16
Done.
|
| + for (var i = 0; i < properties_length; ++i) { |
| + property = properties[i]; |
| var firstChar = property.substring(0, 1); |
| if (property === "static") { |
| - processStatics(#embeddedStatics[cls] = descriptor[property], |
| + processStatics(#embeddedStatics[cls] = descriptor[property], |
| processedClasses); |
| } else if (firstChar === "+") { |
| mangledNames[previousProperty] = property.substring(1); |
| @@ -135,8 +138,11 @@ jsAst.Expression getReflectionDataParser(OldEmitter oldEmitter, |
| // TODO(zarah): Remove empty else branches in output when if(#hole) is false. |
| jsAst.Statement processStatics = js.statement(''' |
| function processStatics(descriptor, processedClasses) { |
| - for (var property in descriptor) { |
| - if (!hasOwnProperty.call(descriptor, property)) continue; |
| + var properties = Object.keys(descriptor); |
| + var properties_length = properties.length; |
|
floitsch
2015/02/20 14:03:38
ditto.
ahe
2015/02/20 14:32:16
Done.
|
| + var property; |
|
floitsch
2015/02/20 14:03:38
ditto.
ahe
2015/02/20 14:32:16
Done.
|
| + for (var i = 0; i < properties_length; ++i) { |
| + property = properties[i]; |
| if (property === "${namer.classDescriptorProperty}") continue; |
| var element = descriptor[property]; |
| var firstChar = property.substring(0, 1); |
| @@ -407,7 +413,9 @@ jsAst.Expression getReflectionDataParser(OldEmitter oldEmitter, |
| #trivialNsmHandlers; |
| - for (var cls in processedClasses.pending) finishClass(cls); |
| + var properties = Object.keys(processedClasses.pending); |
| + var properties_length = properties.length; |
|
floitsch
2015/02/20 14:03:38
ditto.
ahe
2015/02/20 14:32:16
Done.
|
| + for (var i = 0; i < properties_length; ++i) finishClass(properties[i]); |
| } |
| }''', {'allClasses': allClassesAccess, |
| 'debugFastObjects': DEBUG_FAST_OBJECTS, |