Skip to content

Commit 1f3cbe7

Browse files
committed
Simplify JsonParser, store data in string, add support for the PerseException in minified jar.
1 parent b2e032f commit 1f3cbe7

File tree

4 files changed

+16
-14
lines changed
  • lodash-plugin
  • string-plugin

4 files changed

+16
-14
lines changed

lodash-plugin/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
<option>-keepattributes Signature,InnerClasses</option>
8585
<option>-keep public class com.github.underscore.lodash.$ { *; }</option>
8686
<option>-keep public class com.github.underscore.lodash.*$Chain { *; }</option>
87+
<option>-keep public class com.github.underscore.lodash.*$ParseException { *; }</option>
8788
</options>
8889
<libs>
8990
<lib>${java.home}/lib/rt.jar</lib>

lodash-plugin/src/main/java/com/github/underscore/lodash/$.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1285,7 +1285,7 @@ public int getColumn() {
12851285
}
12861286

12871287
public static class JsonParser {
1288-
private final StringBuilder builder;
1288+
private final String json;
12891289
private int bufferOffset;
12901290
private int index;
12911291
private int line;
@@ -1295,7 +1295,7 @@ public static class JsonParser {
12951295
private int captureStart;
12961296

12971297
public JsonParser(String string) {
1298-
this.builder = new StringBuilder(string);
1298+
this.json = string;
12991299
line = 1;
13001300
captureStart = -1;
13011301
}
@@ -1552,15 +1552,15 @@ private void skipWhiteSpace() {
15521552
}
15531553

15541554
private void read() {
1555-
if (index == builder.length()) {
1555+
if (index == json.length()) {
15561556
current = -1;
15571557
return;
15581558
}
15591559
if (current == '\n') {
15601560
line++;
15611561
lineOffset = bufferOffset + index;
15621562
}
1563-
current = builder.charAt(index++);
1563+
current = json.charAt(index++);
15641564
}
15651565

15661566
private void startCapture() {
@@ -1571,19 +1571,19 @@ private void startCapture() {
15711571
}
15721572

15731573
private void pauseCapture() {
1574-
captureBuffer.append(builder.substring(captureStart, index - 1));
1574+
captureBuffer.append(json.substring(captureStart, index - 1));
15751575
captureStart = -1;
15761576
}
15771577

15781578
private String endCapture() {
15791579
int end = current == -1 ? index : index - 1;
15801580
String captured;
15811581
if (captureBuffer.length() > 0) {
1582-
captureBuffer.append(builder.substring(captureStart, end));
1582+
captureBuffer.append(json.substring(captureStart, end));
15831583
captured = captureBuffer.toString();
15841584
captureBuffer.setLength(0);
15851585
} else {
1586-
captured = builder.substring(captureStart, end);
1586+
captured = json.substring(captureStart, end);
15871587
}
15881588
captureStart = -1;
15891589
return captured;

string-plugin/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
<option>-keepattributes Signature,InnerClasses</option>
8585
<option>-keep public class com.github.underscore.string.$ { *; }</option>
8686
<option>-keep public class com.github.underscore.string.*$Chain { *; }</option>
87+
<option>-keep public class com.github.underscore.string.*$ParseException { *; }</option>
8788
</options>
8889
<libs>
8990
<lib>${java.home}/lib/rt.jar</lib>

string-plugin/src/main/java/com/github/underscore/string/$.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ public int getColumn() {
867867
}
868868

869869
public static class JsonParser {
870-
private final StringBuilder builder;
870+
private final String json;
871871
private int bufferOffset;
872872
private int index;
873873
private int line;
@@ -877,7 +877,7 @@ public static class JsonParser {
877877
private int captureStart;
878878

879879
public JsonParser(String string) {
880-
this.builder = new StringBuilder(string);
880+
this.json = string;
881881
line = 1;
882882
captureStart = -1;
883883
}
@@ -1134,15 +1134,15 @@ private void skipWhiteSpace() {
11341134
}
11351135

11361136
private void read() {
1137-
if (index == builder.length()) {
1137+
if (index == json.length()) {
11381138
current = -1;
11391139
return;
11401140
}
11411141
if (current == '\n') {
11421142
line++;
11431143
lineOffset = bufferOffset + index;
11441144
}
1145-
current = builder.charAt(index++);
1145+
current = json.charAt(index++);
11461146
}
11471147

11481148
private void startCapture() {
@@ -1153,19 +1153,19 @@ private void startCapture() {
11531153
}
11541154

11551155
private void pauseCapture() {
1156-
captureBuffer.append(builder.substring(captureStart, index - 1));
1156+
captureBuffer.append(json.substring(captureStart, index - 1));
11571157
captureStart = -1;
11581158
}
11591159

11601160
private String endCapture() {
11611161
int end = current == -1 ? index : index - 1;
11621162
String captured;
11631163
if (captureBuffer.length() > 0) {
1164-
captureBuffer.append(builder.substring(captureStart, end));
1164+
captureBuffer.append(json.substring(captureStart, end));
11651165
captured = captureBuffer.toString();
11661166
captureBuffer.setLength(0);
11671167
} else {
1168-
captured = builder.substring(captureStart, end);
1168+
captured = json.substring(captureStart, end);
11691169
}
11701170
captureStart = -1;
11711171
return captured;

0 commit comments

Comments
 (0)