Skip to content

Commit 8487feb

Browse files
committed
first string functions
1 parent f78133e commit 8487feb

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* Copyright 2019 Volker Berlin (i-net software)
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package de.inetsoftware.jwebassembly.api.java.lang;
17+
18+
import de.inetsoftware.jwebassembly.api.annotation.Import;
19+
import de.inetsoftware.jwebassembly.api.annotation.Replace;
20+
21+
/**
22+
* Replacement methods for the class java.lang.String.
23+
*
24+
* @author Volker Berlin
25+
*/
26+
class ReplacementForString {
27+
28+
/**
29+
* Replacement for new String(byte[])
30+
*/
31+
@Import( name="newBytes", js = "(value) => new TextDecoder().decode(value)")
32+
@Replace( "java/lang/String.<init>([B)V" )
33+
static String init(byte[] value) {
34+
return null; // for compiler
35+
}
36+
37+
/**
38+
* Replacement for new String(char[])
39+
*/
40+
@Import( name="newChars", js = "(value)=>String.fromCharCode.apply(null,value)")
41+
@Replace( "java/lang/String.<init>([C)V" )
42+
static String init(char[] value) {
43+
return null; // for compiler
44+
}
45+
}

0 commit comments

Comments
 (0)