mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-31 13:20:59 +00:00 
			
		
		
		
	 0efa98a57a
			
		
	
	
		0efa98a57a
		
	
	
	
	
		
			
			This has quite a lot of fall out. But the majority of it is just type or UDL substitution, where the changes just fall through to other function calls. By changing property key storage to UTF-16, the main affected areas are: * NativeFunction names must now be UTF-16 * Bytecode identifiers must now be UTF-16 * Module/binding names must now be UTF-16
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			717 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			717 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2021, Gunnar Beutner <gbeutner@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include <LibJS/Bytecode/IdentifierTable.h>
 | |
| 
 | |
| namespace JS::Bytecode {
 | |
| 
 | |
| IdentifierTableIndex IdentifierTable::insert(Utf16FlyString string)
 | |
| {
 | |
|     m_identifiers.append(move(string));
 | |
|     VERIFY(m_identifiers.size() <= NumericLimits<u32>::max());
 | |
|     return { static_cast<u32>(m_identifiers.size() - 1) };
 | |
| }
 | |
| 
 | |
| Utf16FlyString const& IdentifierTable::get(IdentifierTableIndex index) const
 | |
| {
 | |
|     return m_identifiers[index.value];
 | |
| }
 | |
| 
 | |
| void IdentifierTable::dump() const
 | |
| {
 | |
|     outln("Identifier Table:");
 | |
|     for (size_t i = 0; i < m_identifiers.size(); i++)
 | |
|         outln("{}: {}", i, m_identifiers[i]);
 | |
| }
 | |
| 
 | |
| }
 |