forked from xuos/xiuos
				
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
/* Copyright JS Foundation and other contributors, http://js.foundation
 | 
						|
 *
 | 
						|
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
 * you may not use this file except in compliance with the License.
 | 
						|
 * You may obtain a copy of the License at
 | 
						|
 *
 | 
						|
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 *
 | 
						|
 * Unless required by applicable law or agreed to in writing, software
 | 
						|
 * distributed under the License is distributed on an "AS IS" BASIS
 | 
						|
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
 * See the License for the specific language governing permissions and
 | 
						|
 * limitations under the License.
 | 
						|
 */
 | 
						|
 | 
						|
#include "jerryscript-port.h"
 | 
						|
 | 
						|
/**
 | 
						|
 * Track unhandled promise rejections.
 | 
						|
 *
 | 
						|
 * Note:
 | 
						|
 *      This port function is called by jerry-core when JERRY_BUILTIN_PROMISE
 | 
						|
 *      is enabled.
 | 
						|
 *
 | 
						|
 * @param promise rejected promise
 | 
						|
 * @param operation HostPromiseRejectionTracker operation
 | 
						|
 */
 | 
						|
void
 | 
						|
jerry_port_track_promise_rejection (const jerry_value_t promise,
 | 
						|
                                    const jerry_promise_rejection_operation_t operation)
 | 
						|
{
 | 
						|
  (void) operation; /* unused */
 | 
						|
 | 
						|
  jerry_value_t reason = jerry_get_promise_result (promise);
 | 
						|
  jerry_value_t reason_to_string = jerry_value_to_string (reason);
 | 
						|
  jerry_size_t req_sz = jerry_get_utf8_string_size (reason_to_string);
 | 
						|
  jerry_char_t str_buf_p[req_sz + 1];
 | 
						|
  jerry_string_to_utf8_char_buffer (reason_to_string, str_buf_p, req_sz);
 | 
						|
  str_buf_p[req_sz] = '\0';
 | 
						|
 | 
						|
  jerry_release_value (reason_to_string);
 | 
						|
  jerry_release_value (reason);
 | 
						|
 | 
						|
  jerry_port_log (JERRY_LOG_LEVEL_WARNING, "Uncaught (in promise) %s\n", str_buf_p);
 | 
						|
} /* jerry_port_track_promise_rejection */
 |