| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 #library('node_scanner_bench'); | |
| 6 #import('../../lib/node/node.dart'); | |
| 7 #import('scannerlib.dart'); | |
| 8 #import('scanner_implementation.dart'); | |
| 9 #import('scanner_bench.dart'); | |
| 10 #import('../../../lib/utf/utf.dart'); | |
| 11 #source('byte_strings.dart'); | |
| 12 #source('byte_array_scanner.dart'); | |
| 13 | |
| 14 class NodeScannerBench extends ScannerBench { | |
| 15 int getBytes(String filename, void callback(bytes)) { | |
| 16 // This actually returns a buffer, not a String. | |
| 17 var s = fs.readFileSync(filename, null); | |
| 18 callback(s); | |
| 19 return s.length; | |
| 20 } | |
| 21 | |
| 22 Scanner makeScanner(bytes) => new InflexibleByteArrayScanner(bytes); | |
| 23 | |
| 24 void checkExistence(String filename) { | |
| 25 if (!path.existsSync(filename)) { | |
| 26 throw "no such file: ${filename}"; | |
| 27 } | |
| 28 } | |
| 29 } | |
| 30 | |
| 31 class InflexibleByteArrayScanner extends ByteArrayScanner { | |
| 32 InflexibleByteArrayScanner(List<int> bytes) : super(bytes); | |
| 33 | |
| 34 int byteAt(int index) => (bytes.length > index) ? bytes[index] : $EOF; | |
| 35 | |
| 36 int advance() { | |
| 37 // This method should be equivalent to the one in super. However, | |
| 38 // this is a *HOT* method and V8 performs better if it is easy to | |
| 39 // inline. | |
| 40 int index = ++byteOffset; | |
| 41 int next = (bytes.length > index) ? bytes[index] : $EOF; | |
| 42 return next; | |
| 43 } | |
| 44 } | |
| 45 | |
| 46 main() { | |
| 47 new NodeScannerBench().main(argv); | |
| 48 } | |
| OLD | NEW |