57 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			2.2 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 zone = _global['__zone_symbol__callbackZone'];
							 | 
						||
| 
								 | 
							
								  var testRunner = _global['__zone_symbol__testRunner'];
							 | 
						||
| 
								 | 
							
								  var raf = _global['requestAnimationFrame'];
							 | 
						||
| 
								 | 
							
								  var cancel = _global['cancelAnimationFrame'];
							 | 
						||
| 
								 | 
							
								  var nativeRaf = _global['__zone_symbol__requestAnimationFrame'];
							 | 
						||
| 
								 | 
							
								  var nativeCancel = _global['__zone_symbol__cancelAnimationFrame'];
							 | 
						||
| 
								 | 
							
								  var testTarget = {
							 | 
						||
| 
								 | 
							
								    title: 'requestAnimationFrame',
							 | 
						||
| 
								 | 
							
								    times: 10,
							 | 
						||
| 
								 | 
							
								    before: function() {
							 | 
						||
| 
								 | 
							
								      _global['__zone_symbol__callbackContext'].measureName = 'requestAnimationFrame_callback';
							 | 
						||
| 
								 | 
							
								      _global['__zone_symbol__callbackContext'].type = 'macroTask';
							 | 
						||
| 
								 | 
							
								      _global['__zone_symbol__callbackContext'].source = 'requestAnimationFrame';
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    apis: [
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        supportClear: true,
							 | 
						||
| 
								 | 
							
								        method: 'requestAnimationFrame',
							 | 
						||
| 
								 | 
							
								        nativeMethod: '__zone_symbol__requestAnimationFrame',
							 | 
						||
| 
								 | 
							
								        clearMethod: 'cancelAnimationFrame',
							 | 
						||
| 
								 | 
							
								        nativeClearMethod: '__zone_symbol__cancelAnimationFrame',
							 | 
						||
| 
								 | 
							
								        run: function() { return raf(function() {}); },
							 | 
						||
| 
								 | 
							
								        runClear: function(timerId) { return cancel(timerId); },
							 | 
						||
| 
								 | 
							
								        nativeRun: function() { return nativeRaf(function() {}); },
							 | 
						||
| 
								 | 
							
								        nativeRunClear: function(timerId) { return nativeCancel(timerId); }
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        isCallback: true,
							 | 
						||
| 
								 | 
							
								        supportClear: false,
							 | 
						||
| 
								 | 
							
								        method: 'requestAnimationFrame_callback',
							 | 
						||
| 
								 | 
							
								        nativeMethod: 'native_requestAnimationFrame_callback',
							 | 
						||
| 
								 | 
							
								        run: function() { zone.run(function() { raf(function() {}); }); },
							 | 
						||
| 
								 | 
							
								        nativeRun: function() {
							 | 
						||
| 
								 | 
							
								          var func = function() {};
							 | 
						||
| 
								 | 
							
								          nativeRaf(function() {
							 | 
						||
| 
								 | 
							
								            mark('native_requestAnimationFrame_callback');
							 | 
						||
| 
								 | 
							
								            func.apply(this, arguments);
							 | 
						||
| 
								 | 
							
								            measure(
							 | 
						||
| 
								 | 
							
								                'native_requestAnimationFrame_callback', 'native_requestAnimationFrame_callback');
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								  return testRunner(testTarget);
							 | 
						||
| 
								 | 
							
								}(typeof window === 'undefined' ? global : window));
							 |