Chromium Code Reviews| Index: tools/dom/scripts/systemhtml.py |
| diff --git a/tools/dom/scripts/systemhtml.py b/tools/dom/scripts/systemhtml.py |
| index 1f566e749d3434a78c1f2910960897022bb2d2f5..be03f3b1d765c2fdf7b4e6e21256040ba31f83ee 100644 |
| --- a/tools/dom/scripts/systemhtml.py |
| +++ b/tools/dom/scripts/systemhtml.py |
| @@ -711,19 +711,19 @@ class Dart2JSBackend(HtmlDartGenerator): |
| 'CustomIndexedSetter' in ext_attrs) |
| if has_indexed_getter: |
| + indexed_getter = 'JS("%s", "#[#]", this, index)' % self.SecureOutputType(element_type); |
|
sra1
2013/05/09 19:55:50
line length
blois
2013/05/09 22:49:24
Done.
|
| + elif any(op.id == 'getItem' for op in self._interface.operations): |
| + indexed_getter = 'this.getItem(index)' |
| + elif any(op.id == 'item' for op in self._interface.operations): |
| + indexed_getter = 'this.item(index)' |
| + |
| + if indexed_getter: |
| self._members_emitter.Emit( |
| '\n' |
| - ' $TYPE operator[](int index) => ' |
| - 'JS("$TYPE", "#[#]", this, index);\n', |
| - TYPE=self.SecureOutputType(element_type)) |
| - else: |
| - if any(op.id == 'getItem' for op in self._interface.operations): |
| - indexed_getter = 'this.getItem(index)' |
| - elif any(op.id == 'item' for op in self._interface.operations): |
| - indexed_getter = 'this.item(index)' |
| - self._members_emitter.Emit( |
| - '\n' |
| - ' $TYPE operator[](int index) => $INDEXED_GETTER;\n', |
| + ' $TYPE operator[](int index) {\n' |
| + ' if (JS("bool", "# >>> 0 !== # || # >= #", index, index, index, length)) throw new RangeError.range(index, 0, length);\n' |
| + ' return $INDEXED_GETTER;\n' |
| + ' }', |
| INDEXED_GETTER=indexed_getter, |
| TYPE=self.SecureOutputType(element_type)) |