Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Issue 930263002: dart2js: Avoid escaping in strings if it's not necessary. (Closed)

Created:
5 years, 10 months ago by floitsch
Modified:
5 years ago
CC:
reviews_dartlang.org, ahe, Lasse Reichstein Nielsen
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Patch Set 1 #

Patch Set 2 : Update comment. #

Total comments: 6

Patch Set 3 : Address comments. #

Patch Set 4 : Fix bad semicolon. #

Total comments: 14

Patch Set 5 : Address comments. #

Patch Set 6 : Made static and fixed RegExp. #

Patch Set 7 : Reupload after revert. #

Patch Set 8 : Add support for \r. #

Patch Set 9 : Rebase after revert #

Patch Set 10 : Use charsets. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+68 lines, -6 lines) Patch
M pkg/compiler/lib/src/js/builder.dart View 1 2 3 4 5 6 7 8 9 1 chunk +30 lines, -3 lines 0 comments Download
M pkg/compiler/lib/src/js_backend/constant_emitter.dart View 1 2 3 4 5 6 7 8 1 chunk +1 line, -3 lines 0 comments Download
A tests/compiler/dart2js/string_escapes2_test.dart View 1 2 3 1 chunk +37 lines, -0 lines 0 comments Download

Messages

Total messages: 22 (8 generated)
floitsch
5 years, 10 months ago (2015-02-17 13:01:27 UTC) #2
Johnni Winther
lgtm https://codereview.chromium.org/930263002/diff/20001/tests/compiler/dart2js/string_escapes2_test.dart File tests/compiler/dart2js/string_escapes2_test.dart (right): https://codereview.chromium.org/930263002/diff/20001/tests/compiler/dart2js/string_escapes2_test.dart#newcode21 tests/compiler/dart2js/string_escapes2_test.dart:21: generated.contains(r'"Тест на Кирилица - great.\nNext \"line\"."') || Shouldn't ...
5 years, 10 months ago (2015-02-17 14:19:46 UTC) #3
ahe
I don't see any issues related to incremental compilation. I did have a thought: strings ...
5 years, 10 months ago (2015-02-17 15:55:15 UTC) #5
sra1
DBC https://codereview.chromium.org/930263002/diff/20001/pkg/compiler/lib/src/js_backend/constant_emitter.dart File pkg/compiler/lib/src/js_backend/constant_emitter.dart (right): https://codereview.chromium.org/930263002/diff/20001/pkg/compiler/lib/src/js_backend/constant_emitter.dart#newcode282 pkg/compiler/lib/src/js_backend/constant_emitter.dart:282: int i = 0; JsBuilder.escapedString already does this. ...
5 years, 10 months ago (2015-02-17 20:03:53 UTC) #7
floitsch
PTAL. https://codereview.chromium.org/930263002/diff/20001/pkg/compiler/lib/src/js_backend/constant_emitter.dart File pkg/compiler/lib/src/js_backend/constant_emitter.dart (right): https://codereview.chromium.org/930263002/diff/20001/pkg/compiler/lib/src/js_backend/constant_emitter.dart#newcode282 pkg/compiler/lib/src/js_backend/constant_emitter.dart:282: int i = 0; On 2015/02/17 20:03:53, sra1 ...
5 years, 10 months ago (2015-02-20 13:55:50 UTC) #9
Lasse Reichstein Nielsen
lgtm https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart File pkg/compiler/lib/src/js/builder.dart (right): https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart#newcode300 pkg/compiler/lib/src/js/builder.dart:300: String escaped = value.replaceAll('\\', '\\\\'); Why not combine ...
5 years, 10 months ago (2015-02-23 13:25:05 UTC) #11
floitsch
https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart File pkg/compiler/lib/src/js/builder.dart (right): https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart#newcode300 pkg/compiler/lib/src/js/builder.dart:300: String escaped = value.replaceAll('\\', '\\\\'); On 2015/02/23 13:25:05, Lasse ...
5 years, 10 months ago (2015-02-23 16:56:41 UTC) #13
sra1
lgtm https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart File pkg/compiler/lib/src/js/builder.dart (right): https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart#newcode324 pkg/compiler/lib/src/js/builder.dart:324: // string literal anyway. On 2015/02/23 13:25:05, Lasse ...
5 years, 10 months ago (2015-02-23 17:47:27 UTC) #14
floitsch
https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart File pkg/compiler/lib/src/js/builder.dart (right): https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart#newcode326 pkg/compiler/lib/src/js/builder.dart:326: new RegExp('\n|"|\b|\t|\v|\u2028|\u2029'), (match) { On 2015/02/23 17:47:27, sra1 wrote: ...
5 years, 10 months ago (2015-02-23 18:16:45 UTC) #16
floitsch
Committed patchset #6 (id:100001) manually as 43967 (presubmit successful).
5 years, 10 months ago (2015-02-23 18:37:06 UTC) #17
floitsch
Turns out the original code wasn't handling \r and I didn't check for it. Had ...
5 years, 10 months ago (2015-02-23 18:59:38 UTC) #18
floitsch
Committed patchset #8 (id:140001) manually as 43979 (presubmit successful).
5 years, 10 months ago (2015-02-24 09:50:21 UTC) #19
Lasse Reichstein Nielsen
https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart File pkg/compiler/lib/src/js/builder.dart (right): https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/builder.dart#newcode326 pkg/compiler/lib/src/js/builder.dart:326: new RegExp('\n|"|\b|\t|\v|\u2028|\u2029'), (match) { How about: new RegExp(r'[\n\b\t\v"\u2028\u2029]') instead? ...
5 years, 10 months ago (2015-02-24 14:14:21 UTC) #20
floitsch
5 years, 10 months ago (2015-02-24 20:49:44 UTC) #21
The reason for the buildbot failure was the test-server didn't specify that the
JS files are in UTF-8 and the browser assumed that they were iso-latin1 (or
similar).

Fix is underway: https://chromiumcodereview.appspot.com/950353004/

https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/...
File pkg/compiler/lib/src/js/builder.dart (right):

https://codereview.chromium.org/930263002/diff/60001/pkg/compiler/lib/src/js/...
pkg/compiler/lib/src/js/builder.dart:326: new
RegExp('\n|"|\b|\t|\v|\u2028|\u2029'), (match) {
On 2015/02/24 14:14:21, Lasse Reichstein Nielsen wrote:
> How about:
>   new RegExp(r'[\n\b\t\v"\u2028\u2029]')
> instead? I don't think it's any faster, but it is slightly more idiomatic when
> you are switching on single characters.

Done.

Powered by Google App Engine
This is Rietveld 408576698