Chromium Code Reviews| 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 library _isolate_helper; | 5 library _isolate_helper; |
| 6 | 6 |
| 7 import 'dart:_js_embedded_names' show | 7 import 'dart:_js_embedded_names' show |
| 8 CLASS_ID_EXTRACTOR, | 8 CLASS_ID_EXTRACTOR, |
| 9 CLASS_FIELDS_EXTRACTOR, | 9 CLASS_FIELDS_EXTRACTOR, |
| 10 CREATE_NEW_ISOLATE, | 10 CREATE_NEW_ISOLATE, |
| (...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 746 // TODO(herhut): Initialize this to false when able to track compile-time | 746 // TODO(herhut): Initialize this to false when able to track compile-time |
| 747 // constants. | 747 // constants. |
| 748 static var enableSpawnWorker; | 748 static var enableSpawnWorker; |
| 749 | 749 |
| 750 static String thisScript = computeThisScript(); | 750 static String thisScript = computeThisScript(); |
| 751 | 751 |
| 752 /// Associates an ID with a native worker object. | 752 /// Associates an ID with a native worker object. |
| 753 static final Expando<int> workerIds = new Expando<int>(); | 753 static final Expando<int> workerIds = new Expando<int>(); |
| 754 | 754 |
| 755 /** | 755 /** |
| 756 * The src url for the script tag that loaded this Used to create | 756 * The src url for the script tag that loaded this function. |
| 757 * JavaScript workers. | 757 * |
| 758 * Used to create JavaScript workers and load deferred libraries. | |
| 758 */ | 759 */ |
| 759 static String computeThisScript() { | 760 static String computeThisScript() { |
| 760 var currentScript = JS_EMBEDDED_GLOBAL('', CURRENT_SCRIPT); | 761 var currentScript = JS_EMBEDDED_GLOBAL('', CURRENT_SCRIPT); |
|
floitsch
2015/05/07 21:09:51
The embedded global is set, if `document.currentSc
| |
| 761 if (currentScript != null) { | 762 if (currentScript != null) { |
| 762 return JS('String', 'String(#.src)', currentScript); | 763 return JS('String', 'String(#.src)', currentScript); |
| 763 } | 764 } |
| 764 if (Primitives.isD8) return computeThisScriptD8(); | |
|
herhut
2015/05/08 08:06:27
Do we still need the Primitives.isXX helpers? It w
floitsch
2015/05/09 01:07:54
Removed in https://codereview.chromium.org/1132923
| |
| 765 if (Primitives.isJsshell) return computeThisScriptJsshell(); | |
| 766 // A worker has no script tag - so get an url from a stack-trace. | 765 // A worker has no script tag - so get an url from a stack-trace. |
| 767 if (_globalState.isWorker) return computeThisScriptFromTrace(); | 766 if (_globalState.isWorker) return computeThisScriptFromTrace(); |
| 768 return null; | 767 return null; |
| 769 } | 768 } |
| 770 | 769 |
| 771 static String computeThisScriptJsshell() { | |
| 772 return JS('String|Null', 'thisFilename()'); | |
| 773 } | |
| 774 | |
| 775 // TODO(ahe): The following is for supporting D8. We should move this code | |
| 776 // to a helper library that is only loaded when testing on D8. | |
| 777 static String computeThisScriptD8() => computeThisScriptFromTrace(); | |
| 778 | |
| 779 static String computeThisScriptFromTrace() { | 770 static String computeThisScriptFromTrace() { |
| 780 var stack = JS('String|Null', 'new Error().stack'); | 771 var stack = JS('String|Null', 'new Error().stack'); |
| 781 if (stack == null) { | 772 if (stack == null) { |
| 782 // According to Internet Explorer documentation, the stack | 773 // According to Internet Explorer documentation, the stack |
| 783 // property is not set until the exception is thrown. The stack | 774 // property is not set until the exception is thrown. The stack |
| 784 // property was not provided until IE10. | 775 // property was not provided until IE10. |
| 785 stack = JS('String|Null', | 776 stack = JS('String|Null', |
| 786 '(function() {' | 777 '(function() {' |
| 787 'try { throw new Error() } catch(e) { return e.stack }' | 778 'try { throw new Error() } catch(e) { return e.stack }' |
| 788 '})()'); | 779 '})()'); |
| (...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1451 } | 1442 } |
| 1452 | 1443 |
| 1453 bool operator==(Object other) { | 1444 bool operator==(Object other) { |
| 1454 if (identical(other, this)) return true; | 1445 if (identical(other, this)) return true; |
| 1455 if (other is CapabilityImpl) { | 1446 if (other is CapabilityImpl) { |
| 1456 return identical(_id, other._id); | 1447 return identical(_id, other._id); |
| 1457 } | 1448 } |
| 1458 return false; | 1449 return false; |
| 1459 } | 1450 } |
| 1460 } | 1451 } |
| OLD | NEW |