| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 class _MessageTraverserVisitedMap { | 5 class _MessageTraverserVisitedMap { |
| 6 | 6 |
| 7 operator[](var object) => null; | 7 operator[](var object) => null; |
| 8 void operator[]=(var object, var info) { } | 8 void operator[]=(var object, var info) { } |
| 9 | 9 |
| 10 void reset() { } | 10 void reset() { } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 } | 30 } |
| 31 return result; | 31 return result; |
| 32 } | 32 } |
| 33 | 33 |
| 34 _dispatch(var x) { | 34 _dispatch(var x) { |
| 35 if (isPrimitive(x)) return visitPrimitive(x); | 35 if (isPrimitive(x)) return visitPrimitive(x); |
| 36 if (x is List) return visitList(x); | 36 if (x is List) return visitList(x); |
| 37 if (x is Map) return visitMap(x); | 37 if (x is Map) return visitMap(x); |
| 38 if (x is SendPort) return visitSendPort(x); | 38 if (x is SendPort) return visitSendPort(x); |
| 39 if (x is SendPortSync) return visitSendPortSync(x); | 39 if (x is SendPortSync) return visitSendPortSync(x); |
| 40 if (x is Function) return visitFunction(x); |
| 40 | 41 |
| 41 // TODO(floitsch): make this a real exception. (which one)? | 42 // TODO(floitsch): make this a real exception. (which one)? |
| 42 throw "Message serialization: Illegal value $x passed"; | 43 throw "Message serialization: Illegal value $x passed"; |
| 43 } | 44 } |
| 44 | 45 |
| 45 abstract visitPrimitive(x); | 46 abstract visitPrimitive(x); |
| 46 abstract visitList(List x); | 47 abstract visitList(List x); |
| 47 abstract visitMap(Map x); | 48 abstract visitMap(Map x); |
| 48 abstract visitSendPort(SendPort x); | 49 abstract visitSendPort(SendPort x); |
| 49 abstract visitSendPortSync(SendPortSync x); | 50 abstract visitSendPortSync(SendPortSync x); |
| 50 | 51 |
| 52 visitFunction(Function func) { |
| 53 throw "Serialization of functions is not allowed."; |
| 54 } |
| 55 |
| 51 static bool isPrimitive(x) { | 56 static bool isPrimitive(x) { |
| 52 return (x === null) || (x is String) || (x is num) || (x is bool); | 57 return (x === null) || (x is String) || (x is num) || (x is bool); |
| 53 } | 58 } |
| 54 } | 59 } |
| 55 | 60 |
| 56 | 61 |
| 57 /** A visitor that recursively copies a message. */ | 62 /** A visitor that recursively copies a message. */ |
| 58 class _Copier extends _MessageTraverser { | 63 class _Copier extends _MessageTraverser { |
| 59 | 64 |
| 60 visitPrimitive(x) => x; | 65 visitPrimitive(x) => x; |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 var key = _deserializeHelper(keys[i]); | 194 var key = _deserializeHelper(keys[i]); |
| 190 var value = _deserializeHelper(values[i]); | 195 var value = _deserializeHelper(values[i]); |
| 191 result[key] = value; | 196 result[key] = value; |
| 192 } | 197 } |
| 193 return result; | 198 return result; |
| 194 } | 199 } |
| 195 | 200 |
| 196 abstract deserializeSendPort(List x); | 201 abstract deserializeSendPort(List x); |
| 197 | 202 |
| 198 } | 203 } |
| OLD | NEW |