| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 part of dart2js.js_emitter; | 5 part of dart2js.js_emitter; |
| 6 | 6 |
| 7 // TODO(ahe): Share these with js_helper.dart. | 7 // TODO(ahe): Share these with js_helper.dart. |
| 8 const FUNCTION_INDEX = 0; | 8 const FUNCTION_INDEX = 0; |
| 9 const NAME_INDEX = 1; | 9 const NAME_INDEX = 1; |
| 10 const CALL_NAME_INDEX = 2; | 10 const CALL_NAME_INDEX = 2; |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 array, index, 'result != null && typeof result != "string"', 'string'); | 378 array, index, 'result != null && typeof result != "string"', 'string'); |
| 379 } | 379 } |
| 380 | 380 |
| 381 String readInt(String array, String index) { | 381 String readInt(String array, String index) { |
| 382 return readChecked( | 382 return readChecked( |
| 383 array, index, | 383 array, index, |
| 384 'result != null && (typeof result != "number" || (result|0) !== result)', | 384 'result != null && (typeof result != "number" || (result|0) !== result)', |
| 385 'int'); | 385 'int'); |
| 386 } | 386 } |
| 387 | 387 |
| 388 String readFunction(String array, String index) { | |
| 389 return readChecked( | |
| 390 array, index, 'result != null && typeof result != "function"', | |
| 391 'function'); | |
| 392 } | |
| 393 | |
| 394 String readFunctionType(String array, String index) { | 388 String readFunctionType(String array, String index) { |
| 395 return readChecked( | 389 return readChecked( |
| 396 array, index, | 390 array, index, |
| 397 'result != null && ' | 391 'result != null && ' |
| 398 '(typeof result != "number" || (result|0) !== result) && ' | 392 '(typeof result != "number" || (result|0) !== result) && ' |
| 399 'typeof result != "function"', | 393 'typeof result != "function"', |
| 400 'function or int'); | 394 'function or int'); |
| 401 } | 395 } |
| 402 | 396 |
| 403 String readChecked(String array, String index, String check, String type) { | 397 String readChecked(String array, String index, String check, String type) { |
| 404 if (!VALIDATE_DATA) return '$array[$index]'; | 398 if (!VALIDATE_DATA) return '$array[$index]'; |
| 405 return ''' | 399 return ''' |
| 406 (function() { | 400 (function() { |
| 407 var result = $array[$index]; | 401 var result = $array[$index]; |
| 408 if ($check) { | 402 if ($check) { |
| 409 throw new Error( | 403 throw new Error( |
| 410 name + ": expected value of type \'$type\' at index " + ($index) + | 404 name + ": expected value of type \'$type\' at index " + ($index) + |
| 411 " but got " + (typeof result)); | 405 " but got " + (typeof result)); |
| 412 } | 406 } |
| 413 return result; | 407 return result; |
| 414 })()'''; | 408 })()'''; |
| 415 } | 409 } |
| OLD | NEW |