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

Issue 11193032: Use JavaScript's Array.sort. (Closed)

Created:
8 years, 2 months ago by ahe
Modified:
5 years, 10 months ago
CC:
reviews_dartlang.org, ngeoffray, floitsch
Visibility:
Public.

Description

Use JavaScript's Array.sort.

Patch Set 1 #

Total comments: 13

Patch Set 2 : Address Lasse's concers #

Patch Set 3 : Minor tweak to sort$0 #

Total comments: 16
Unified diffs Side-by-side diffs Delta from patch set Stats (+74 lines, -2 lines) Patch
M dart/lib/compiler/implementation/lib/interceptors.dart View 1 2 1 chunk +58 lines, -2 lines 15 comments Download
M dart/lib/compiler/implementation/lib/js_helper.dart View 1 1 chunk +16 lines, -0 lines 1 comment Download

Messages

Total messages: 18 (0 generated)
ahe
8 years, 2 months ago (2012-10-18 06:44:55 UTC) #1
ahe
8 years, 2 months ago (2012-10-18 06:45:15 UTC) #2
sra1
Nice. How is performance? I'm interested in comparing three configurations, they can be tested on ...
8 years, 2 months ago (2012-10-18 07:19:12 UTC) #3
sra1
https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart#newcode373 dart/lib/compiler/implementation/lib/interceptors.dart:373: var jsCompare = JS('var', '(function (compareHelper, compare) {' A ...
8 years, 2 months ago (2012-10-18 07:44:39 UTC) #4
kasperl
LGTM! https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart#newcode367 dart/lib/compiler/implementation/lib/interceptors.dart:367: JS('var', '#.sort(#)', receiver, DART_CLOSURE_TO_JS(Comparable.compare)); 'var' -> 'void'? https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart#newcode374 ...
8 years, 2 months ago (2012-10-18 07:46:36 UTC) #5
ahe
Stephen, I don't understand your comments about "arguments[0]" and "bringing in the isolate library". The ...
8 years, 2 months ago (2012-10-18 07:47:47 UTC) #6
sra1
On 2012/10/18 07:47:47, ahe wrote: > Stephen, I don't understand your comments about "arguments[0]" and ...
8 years, 2 months ago (2012-10-18 07:58:15 UTC) #7
sra1
lgtm
8 years, 2 months ago (2012-10-18 07:59:05 UTC) #8
Lasse Reichstein Nielsen
https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart#newcode376 dart/lib/compiler/implementation/lib/interceptors.dart:376: JS('var', '#.sort(#)', receiver, jsCompare); JavaScript's sort is hard-coded to ...
8 years, 2 months ago (2012-10-18 08:23:28 UTC) #9
ahe
PTAL https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/1/dart/lib/compiler/implementation/lib/interceptors.dart#newcode367 dart/lib/compiler/implementation/lib/interceptors.dart:367: JS('var', '#.sort(#)', receiver, DART_CLOSURE_TO_JS(Comparable.compare)); On 2012/10/18 07:46:36, kasperl ...
8 years, 2 months ago (2012-10-18 10:37:36 UTC) #10
Lasse Reichstein Nielsen
LGTM. https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart#newcode417 dart/lib/compiler/implementation/lib/interceptors.dart:417: jsCompare = JS('var', '#.bind(#, #)', jsCompare, null, compare); ...
8 years, 2 months ago (2012-10-18 11:54:50 UTC) #11
floitsch
LGTM. https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart#newcode365 dart/lib/compiler/implementation/lib/interceptors.dart:365: if (!isJsArray(receiver)) return UNINTERCEPTED(receiver.sort()); After this if I ...
8 years, 2 months ago (2012-10-18 12:27:21 UTC) #12
Lasse Reichstein Nielsen
https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart#newcode365 dart/lib/compiler/implementation/lib/interceptors.dart:365: if (!isJsArray(receiver)) return UNINTERCEPTED(receiver.sort()); The trick is that this ...
8 years, 2 months ago (2012-10-18 13:04:00 UTC) #13
floitsch
https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart#newcode365 dart/lib/compiler/implementation/lib/interceptors.dart:365: if (!isJsArray(receiver)) return UNINTERCEPTED(receiver.sort()); On 2012/10/18 13:04:00, Lasse Reichstein ...
8 years, 2 months ago (2012-10-18 13:46:49 UTC) #14
Lasse Reichstein Nielsen
https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart#newcode401 dart/lib/compiler/implementation/lib/interceptors.dart:401: array = JS('var', '#.slice(0)', array); Because any NullSentinel in ...
8 years, 2 months ago (2012-10-19 07:03:21 UTC) #15
ahe
I forgot to mail this out. There has been a lot of changes to this ...
8 years, 1 month ago (2012-11-23 08:43:42 UTC) #16
sra1
https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart File dart/lib/compiler/implementation/lib/interceptors.dart (right): https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implementation/lib/interceptors.dart#newcode391 dart/lib/compiler/implementation/lib/interceptors.dart:391: int length = JS('int', '#.length', receiver); On 2012/11/23 08:43:42, ...
8 years, 1 month ago (2012-11-23 10:57:33 UTC) #17
floitsch
8 years, 1 month ago (2012-11-23 13:00:51 UTC) #18
https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implemen...
File dart/lib/compiler/implementation/lib/interceptors.dart (right):

https://codereview.chromium.org/11193032/diff/7003/dart/lib/compiler/implemen...
dart/lib/compiler/implementation/lib/interceptors.dart:391: int length =
JS('int', '#.length', receiver);
On 2012/11/23 10:57:33, sra1 wrote:
> On 2012/11/23 08:43:42, ahe wrote:
> > On 2012/10/18 12:27:22, floitsch wrote:
> > > Just tell dart2js that receiver is a JavaScript-array, instead of having
all
> > > these JS here.
> > 
> > How do I do that?
> 
> This code is dominated by isJsArray(receiver).
> Why is that not sufficient?

It should be, and now with the new interceptor approach this should work even
better.

Powered by Google App Engine
This is Rietveld 408576698