58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @license
							 | 
						||
| 
								 | 
							
								 * Copyright Google Inc. All Rights Reserved.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Use of this source code is governed by an MIT-style license that can be
							 | 
						||
| 
								 | 
							
								 * found in the LICENSE file at https://angular.io/license
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								(function(_global) {
							 | 
						||
| 
								 | 
							
								  var mark = _global['__zone_symbol__mark'];
							 | 
						||
| 
								 | 
							
								  var measure = _global['__zone_symbol__measure'];
							 | 
						||
| 
								 | 
							
								  var testRunner = _global['__zone_symbol__testRunner'];
							 | 
						||
| 
								 | 
							
								  var zone = _global['__zone_symbol__callbackZone'];
							 | 
						||
| 
								 | 
							
								  var nativePromise = _global['__zone_symbol__Promise'];
							 | 
						||
| 
								 | 
							
								  var resolved = Promise.resolve(1);
							 | 
						||
| 
								 | 
							
								  var nativeResolved = nativePromise.resolve(1);
							 | 
						||
| 
								 | 
							
								  var testTarget = {
							 | 
						||
| 
								 | 
							
								    title: 'Promise',
							 | 
						||
| 
								 | 
							
								    times: 10,
							 | 
						||
| 
								 | 
							
								    before: function() {
							 | 
						||
| 
								 | 
							
								      _global['__zone_symbol__callbackContext'].measureName = 'Promise_callback';
							 | 
						||
| 
								 | 
							
								      _global['__zone_symbol__callbackContext'].type = 'microTask';
							 | 
						||
| 
								 | 
							
								      _global['__zone_symbol__callbackContext'].source = 'Promise.then';
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    apis: [
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        supportClear: false,
							 | 
						||
| 
								 | 
							
								        isAsync: true,
							 | 
						||
| 
								 | 
							
								        method: 'Promise',
							 | 
						||
| 
								 | 
							
								        nativeMethod: 'native_Promise',
							 | 
						||
| 
								 | 
							
								        run: function() { return resolved.then(function() {}); },
							 | 
						||
| 
								 | 
							
								        nativeRun: function() { return nativeResolved['__zone_symbol__then'](function() {}); },
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        isCallback: true,
							 | 
						||
| 
								 | 
							
								        isAsync: true,
							 | 
						||
| 
								 | 
							
								        supportClear: false,
							 | 
						||
| 
								 | 
							
								        method: 'Promise_callback',
							 | 
						||
| 
								 | 
							
								        nativeMethod: 'native_Promise_callback',
							 | 
						||
| 
								 | 
							
								        run: function() {
							 | 
						||
| 
								 | 
							
								          return zone.run(function() {
							 | 
						||
| 
								 | 
							
								            return Promise.resolve(1).then(function(v) { return v; });
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        nativeRun: function() {
							 | 
						||
| 
								 | 
							
								          var func = function() {};
							 | 
						||
| 
								 | 
							
								          return _global['__zone_symbol__Promise'].resolve(1)['__zone_symbol__then'](function() {
							 | 
						||
| 
								 | 
							
								            mark('native_Promise_callback');
							 | 
						||
| 
								 | 
							
								            var result = func.apply(this, arguments);
							 | 
						||
| 
								 | 
							
								            measure('native_Promise_callback', 'native_Promise_callback');
							 | 
						||
| 
								 | 
							
								            return result;
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  return testRunner(testTarget);
							 | 
						||
| 
								 | 
							
								}(typeof window === 'undefined' ? global : window));
							 |