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 import "dart:collection"; | 5 import "dart:collection"; |
| 6 import 'dart:convert'; |
6 import 'dart:html'; | 7 import 'dart:html'; |
7 import 'dart:json' as json; | |
8 | 8 |
9 // Workaround for HTML lib missing feature. | 9 // Workaround for HTML lib missing feature. |
10 Range newRange() { | 10 Range newRange() { |
11 return document.createRange(); | 11 return document.createRange(); |
12 } | 12 } |
13 | 13 |
14 // Temporary range object to optimize performance computing client rects | 14 // Temporary range object to optimize performance computing client rects |
15 // from text nodes. | 15 // from text nodes. |
16 Range _tempRange; | 16 Range _tempRange; |
17 // Hacks because ASYNC measurement is annoying when just writing a script. | 17 // Hacks because ASYNC measurement is annoying when just writing a script. |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 return true; | 339 return true; |
340 } | 340 } |
341 | 341 |
342 bool isSkippable(Node n) { | 342 bool isSkippable(Node n) { |
343 if (!isSkippableType(n)) return false; | 343 if (!isSkippableType(n)) return false; |
344 return n.text.trim().length == 0; | 344 return n.text.trim().length == 0; |
345 } | 345 } |
346 | 346 |
347 void onEnd() { | 347 void onEnd() { |
348 // Hideous hack to send JSON back to JS. | 348 // Hideous hack to send JSON back to JS. |
349 String dbJson = json.stringify(dbEntry); | 349 String dbJson = JSON.encode(dbEntry); |
350 // workaround bug in json.parse. | 350 // workaround bug in JSON.decode. |
351 dbJson = dbJson.replaceAll("ZDARTIUMDOESNTESCAPESLASHNJXXXX", "\\n"); | 351 dbJson = dbJson.replaceAll("ZDARTIUMDOESNTESCAPESLASHNJXXXX", "\\n"); |
352 | 352 |
353 // Use postMessage to end the JSON to JavaScript. TODO(jacobr): use a simple | 353 // Use postMessage to end the JSON to JavaScript. TODO(jacobr): use a simple |
354 // isolate based Dart-JS interop solution in the future. | 354 // isolate based Dart-JS interop solution in the future. |
355 window.postMessage("START_DART_MESSAGE_UNIQUE_IDENTIFIER$dbJson", "*"); | 355 window.postMessage("START_DART_MESSAGE_UNIQUE_IDENTIFIER$dbJson", "*"); |
356 } | 356 } |
357 | 357 |
358 class SectionParseResult { | 358 class SectionParseResult { |
359 final String html; | 359 final String html; |
360 final String url; | 360 final String url; |
(...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1307 onEnd(); | 1307 onEnd(); |
1308 } | 1308 } |
1309 | 1309 |
1310 void main() { | 1310 void main() { |
1311 window.on.load.add(documentLoaded); | 1311 window.on.load.add(documentLoaded); |
1312 } | 1312 } |
1313 | 1313 |
1314 void documentLoaded(event) { | 1314 void documentLoaded(event) { |
1315 // Load the database of expected methods and properties with an HttpRequest. | 1315 // Load the database of expected methods and properties with an HttpRequest. |
1316 new HttpRequest.get('${window.location}.json', (req) { | 1316 new HttpRequest.get('${window.location}.json', (req) { |
1317 data = json.parse(req.responseText); | 1317 data = JSON.decode(req.responseText); |
1318 dbEntry = {'members': [], 'srcUrl': pageUrl}; | 1318 dbEntry = {'members': [], 'srcUrl': pageUrl}; |
1319 run(); | 1319 run(); |
1320 }); | 1320 }); |
1321 } | 1321 } |
OLD | NEW |