| Index: sdk/lib/html/src/Serialization.dart
 | 
| diff --git a/sdk/lib/html/src/Serialization.dart b/sdk/lib/html/src/Serialization.dart
 | 
| deleted file mode 100644
 | 
| index 4db5c0d285bf00e1c854cb4dc5d52908a2b64595..0000000000000000000000000000000000000000
 | 
| --- a/sdk/lib/html/src/Serialization.dart
 | 
| +++ /dev/null
 | 
| @@ -1,180 +0,0 @@
 | 
| -// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
 | 
| -// for details. All rights reserved. Use of this source code is governed by a
 | 
| -// BSD-style license that can be found in the LICENSE file.
 | 
| -
 | 
| -// Patch file for the dart:isolate library.
 | 
| -
 | 
| -part of html;
 | 
| -
 | 
| -/********************************************************
 | 
| -  Inserted from lib/isolate/serialization.dart
 | 
| - ********************************************************/
 | 
| -
 | 
| -class _MessageTraverserVisitedMap {
 | 
| -
 | 
| -  operator[](var object) => null;
 | 
| -  void operator[]=(var object, var info) { }
 | 
| -
 | 
| -  void reset() { }
 | 
| -  void cleanup() { }
 | 
| -
 | 
| -}
 | 
| -
 | 
| -/** Abstract visitor for dart objects that can be sent as isolate messages. */
 | 
| -abstract class _MessageTraverser {
 | 
| -
 | 
| -  _MessageTraverserVisitedMap _visited;
 | 
| -  _MessageTraverser() : _visited = new _MessageTraverserVisitedMap();
 | 
| -
 | 
| -  /** Visitor's entry point. */
 | 
| -  traverse(var x) {
 | 
| -    if (isPrimitive(x)) return visitPrimitive(x);
 | 
| -    _visited.reset();
 | 
| -    var result;
 | 
| -    try {
 | 
| -      result = _dispatch(x);
 | 
| -    } finally {
 | 
| -      _visited.cleanup();
 | 
| -    }
 | 
| -    return result;
 | 
| -  }
 | 
| -
 | 
| -  _dispatch(var x) {
 | 
| -    if (isPrimitive(x)) return visitPrimitive(x);
 | 
| -    if (x is List) return visitList(x);
 | 
| -    if (x is Map) return visitMap(x);
 | 
| -    if (x is SendPort) return visitSendPort(x);
 | 
| -    if (x is SendPortSync) return visitSendPortSync(x);
 | 
| -
 | 
| -    // Overridable fallback.
 | 
| -    return visitObject(x);
 | 
| -  }
 | 
| -
 | 
| -  visitPrimitive(x);
 | 
| -  visitList(List x);
 | 
| -  visitMap(Map x);
 | 
| -  visitSendPort(SendPort x);
 | 
| -  visitSendPortSync(SendPortSync x);
 | 
| -
 | 
| -  visitObject(Object x) {
 | 
| -    // TODO(floitsch): make this a real exception. (which one)?
 | 
| -    throw "Message serialization: Illegal value $x passed";
 | 
| -  }
 | 
| -
 | 
| -  static bool isPrimitive(x) {
 | 
| -    return (x == null) || (x is String) || (x is num) || (x is bool);
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -
 | 
| -/** Visitor that serializes a message as a JSON array. */
 | 
| -abstract class _Serializer extends _MessageTraverser {
 | 
| -  int _nextFreeRefId = 0;
 | 
| -
 | 
| -  visitPrimitive(x) => x;
 | 
| -
 | 
| -  visitList(List list) {
 | 
| -    int copyId = _visited[list];
 | 
| -    if (copyId != null) return ['ref', copyId];
 | 
| -
 | 
| -    int id = _nextFreeRefId++;
 | 
| -    _visited[list] = id;
 | 
| -    var jsArray = _serializeList(list);
 | 
| -    // TODO(floitsch): we are losing the generic type.
 | 
| -    return ['list', id, jsArray];
 | 
| -  }
 | 
| -
 | 
| -  visitMap(Map map) {
 | 
| -    int copyId = _visited[map];
 | 
| -    if (copyId != null) return ['ref', copyId];
 | 
| -
 | 
| -    int id = _nextFreeRefId++;
 | 
| -    _visited[map] = id;
 | 
| -    var keys = _serializeList(map.keys);
 | 
| -    var values = _serializeList(map.values);
 | 
| -    // TODO(floitsch): we are losing the generic type.
 | 
| -    return ['map', id, keys, values];
 | 
| -  }
 | 
| -
 | 
| -  _serializeList(List list) {
 | 
| -    int len = list.length;
 | 
| -    var result = new List(len);
 | 
| -    for (int i = 0; i < len; i++) {
 | 
| -      result[i] = _dispatch(list[i]);
 | 
| -    }
 | 
| -    return result;
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -/** Deserializes arrays created with [_Serializer]. */
 | 
| -abstract class _Deserializer {
 | 
| -  Map<int, dynamic> _deserialized;
 | 
| -
 | 
| -  _Deserializer();
 | 
| -
 | 
| -  static bool isPrimitive(x) {
 | 
| -    return (x == null) || (x is String) || (x is num) || (x is bool);
 | 
| -  }
 | 
| -
 | 
| -  deserialize(x) {
 | 
| -    if (isPrimitive(x)) return x;
 | 
| -    // TODO(floitsch): this should be new HashMap<int, dynamic>()
 | 
| -    _deserialized = new HashMap();
 | 
| -    return _deserializeHelper(x);
 | 
| -  }
 | 
| -
 | 
| -  _deserializeHelper(x) {
 | 
| -    if (isPrimitive(x)) return x;
 | 
| -    assert(x is List);
 | 
| -    switch (x[0]) {
 | 
| -      case 'ref': return _deserializeRef(x);
 | 
| -      case 'list': return _deserializeList(x);
 | 
| -      case 'map': return _deserializeMap(x);
 | 
| -      case 'sendport': return deserializeSendPort(x);
 | 
| -      default: return deserializeObject(x);
 | 
| -    }
 | 
| -  }
 | 
| -
 | 
| -  _deserializeRef(List x) {
 | 
| -    int id = x[1];
 | 
| -    var result = _deserialized[id];
 | 
| -    assert(result != null);
 | 
| -    return result;
 | 
| -  }
 | 
| -
 | 
| -  List _deserializeList(List x) {
 | 
| -    int id = x[1];
 | 
| -    // We rely on the fact that Dart-lists are directly mapped to Js-arrays.
 | 
| -    List dartList = x[2];
 | 
| -    _deserialized[id] = dartList;
 | 
| -    int len = dartList.length;
 | 
| -    for (int i = 0; i < len; i++) {
 | 
| -      dartList[i] = _deserializeHelper(dartList[i]);
 | 
| -    }
 | 
| -    return dartList;
 | 
| -  }
 | 
| -
 | 
| -  Map _deserializeMap(List x) {
 | 
| -    Map result = new Map();
 | 
| -    int id = x[1];
 | 
| -    _deserialized[id] = result;
 | 
| -    List keys = x[2];
 | 
| -    List values = x[3];
 | 
| -    int len = keys.length;
 | 
| -    assert(len == values.length);
 | 
| -    for (int i = 0; i < len; i++) {
 | 
| -      var key = _deserializeHelper(keys[i]);
 | 
| -      var value = _deserializeHelper(values[i]);
 | 
| -      result[key] = value;
 | 
| -    }
 | 
| -    return result;
 | 
| -  }
 | 
| -
 | 
| -  deserializeSendPort(List x);
 | 
| -
 | 
| -  deserializeObject(List x) {
 | 
| -    // TODO(floitsch): Use real exception (which one?).
 | 
| -    throw "Unexpected serialized object";
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| 
 |