@@ -8,11 +8,13 @@ import { decode } from '@jridgewell/sourcemap-codec';
88import {
99 TraceMap as CurrentTraceMap ,
1010 traceSegment as currentTraceSegment ,
11+ generatedPositionFor as currentGeneratedPositionFor ,
1112} from '../dist/trace-mapping.mjs' ;
1213import {
1314 TraceMap as LatestTraceMap ,
1415 traceSegment as latestTraceSegment ,
15- } from '../dist/trace-mapping.mjs' ;
16+ generatedPositionFor as latestGeneratedPositionFor ,
17+ } from 'trace-map' ;
1618import { SourceMapConsumer as SourceMapConsumerJs } from 'source-map-js' ;
1719import { SourceMapConsumer as SourceMapConsumer061 } from 'source-map' ;
1820import { SourceMapConsumer as SourceMapConsumerWasm } from 'source-map-wasm' ;
@@ -383,14 +385,171 @@ async function bench(file) {
383385 } )
384386 . run ( { } ) ;
385387
388+ console . log ( '' ) ;
389+
390+ console . log ( 'Generated Positions init:' ) ;
391+ const firstSource = currentDecoded . sources [ 0 ] ;
392+ benchmark = new Benchmark . Suite ( )
393+ . add ( 'trace-mapping: decoded generatedPositionFor' , ( ) => {
394+ const decoded = new CurrentTraceMap ( decodedMapData ) ;
395+ currentGeneratedPositionFor ( decoded , {
396+ source : firstSource ,
397+ line : 6 ,
398+ column : 0 ,
399+ bias : 1 ,
400+ } ) ;
401+ } )
402+ . add ( 'trace-mapping: encoded generatedPositionFor' , ( ) => {
403+ const encoded = new CurrentTraceMap ( encodedMapData ) ;
404+ currentGeneratedPositionFor ( encoded , {
405+ source : firstSource ,
406+ line : 6 ,
407+ column : 0 ,
408+ bias : 1 ,
409+ } ) ;
410+ } ) ;
411+ if ( diff ) {
412+ benchmark = benchmark
413+ . add ( 'trace-mapping latest: decoded generatedPositionFor' , ( ) => {
414+ const decoded = new LatestTraceMap ( decodedMapData ) ;
415+ latestGeneratedPositionFor ( decoded , {
416+ source : firstSource ,
417+ line : 6 ,
418+ column : 0 ,
419+ } ) ;
420+ } )
421+ . add ( 'trace-mapping latest: encoded generatedPositionFor' , ( ) => {
422+ const encoded = new LatestTraceMap ( encodedMapData ) ;
423+ latestGeneratedPositionFor ( encoded , {
424+ source : firstSource ,
425+ line : 6 ,
426+ column : 0 ,
427+ } ) ;
428+ } ) ;
429+ } else {
430+ benchmark = benchmark
431+ . add ( 'source-map-js: encoded generatedPositionFor' , ( ) => {
432+ const smcjs = new SourceMapConsumerJs ( encodedMapData ) ;
433+ smcjs . generatedPositionFor ( {
434+ source : firstSource ,
435+ line : 6 ,
436+ column : 0 ,
437+ } ) ;
438+ } )
439+ . add ( 'source-map-0.6.1: encoded generatedPositionFor' , ( ) => {
440+ const smc061 = new SourceMapConsumer061 ( encodedMapData ) ;
441+ smc061 . generatedPositionFor ( {
442+ source : firstSource ,
443+ line : 6 ,
444+ column : 0 ,
445+ } ) ;
446+ } )
447+ . add ( 'source-map-0.8.0: encoded generatedPositionFor' , ( ) => {
448+ smcWasm . destroy ( ) ;
449+ smcWasm . generatedPositionFor ( {
450+ source : firstSource ,
451+ line : 6 ,
452+ column : 0 ,
453+ } ) ;
454+ } )
455+ . add ( 'Chrome dev tools: encoded generatedPositionFor' , ( ) => {
456+ const chromeMap = new ChromeMap ( 'url' , encodedMapData ) ;
457+ chromeMap . findEntryReversed ( firstSource , 6 ) ;
458+ } ) ;
459+ }
460+ // add listeners
461+ benchmark
462+ . on ( 'error' , ( event ) => console . error ( event . target . error ) )
463+ . on ( 'cycle' , ( event ) => {
464+ console . log ( String ( event . target ) ) ;
465+ } )
466+ . on ( 'complete' , function ( ) {
467+ console . log ( 'Fastest is ' + this . filter ( 'fastest' ) . map ( 'name' ) ) ;
468+ } )
469+ . run ( { } ) ;
470+
471+ console . log ( '' ) ;
472+
473+ console . log ( 'Generated Positions speed:' ) ;
474+ benchmark = new Benchmark . Suite ( )
475+ . add ( 'trace-mapping: decoded generatedPositionFor' , ( ) => {
476+ currentGeneratedPositionFor ( currentDecoded , {
477+ source : firstSource ,
478+ line : 6 ,
479+ column : 0 ,
480+ bias : 1 ,
481+ } ) ;
482+ } )
483+ . add ( 'trace-mapping: encoded generatedPositionFor' , ( ) => {
484+ currentGeneratedPositionFor ( currentEncoded , {
485+ source : firstSource ,
486+ line : 6 ,
487+ column : 0 ,
488+ bias : 1 ,
489+ } ) ;
490+ } ) ;
491+ if ( diff ) {
492+ benchmark = benchmark
493+ . add ( 'trace-mapping latest: decoded generatedPositionFor' , ( ) => {
494+ latestGeneratedPositionFor ( latestDecoded , {
495+ source : firstSource ,
496+ line : 6 ,
497+ column : 0 ,
498+ } ) ;
499+ } )
500+ . add ( 'trace-mapping latest: encoded generatedPositionFor' , ( ) => {
501+ latestGeneratedPositionFor ( latestEncoded , {
502+ source : firstSource ,
503+ line : 6 ,
504+ column : 0 ,
505+ } ) ;
506+ } ) ;
507+ } else {
508+ benchmark = benchmark
509+ . add ( 'source-map-js: encoded generatedPositionFor' , ( ) => {
510+ smcjs . generatedPositionFor ( {
511+ source : firstSource ,
512+ line : 6 ,
513+ column : 0 ,
514+ } ) ;
515+ } )
516+ . add ( 'source-map-0.6.1: encoded generatedPositionFor' , ( ) => {
517+ smc061 . generatedPositionFor ( {
518+ source : firstSource ,
519+ line : 6 ,
520+ column : 0 ,
521+ } ) ;
522+ } )
523+ . add ( 'source-map-0.8.0: encoded generatedPositionFor' , ( ) => {
524+ smcWasm . generatedPositionFor ( {
525+ source : firstSource ,
526+ line : 6 ,
527+ column : 0 ,
528+ } ) ;
529+ } )
530+ . add ( 'Chrome dev tools: encoded generatedPositionFor' , ( ) => {
531+ chromeMap . findEntryReversed ( firstSource , 6 ) ;
532+ } ) ;
533+ }
534+ // add listeners
535+ benchmark
536+ . on ( 'error' , ( event ) => console . error ( event . target . error ) )
537+ . on ( 'cycle' , ( event ) => {
538+ console . log ( String ( event . target ) ) ;
539+ } )
540+ . on ( 'complete' , function ( ) {
541+ console . log ( 'Fastest is ' + this . filter ( 'fastest' ) . map ( 'name' ) ) ;
542+ } )
543+ . run ( { } ) ;
544+
386545 if ( smcWasm ) smcWasm . destroy ( ) ;
387546}
388547
389548async function run ( files ) {
390549 let first = true ;
391550 for ( const file of files ) {
392551 if ( ! file . endsWith ( '.map' ) ) continue ;
393- if ( file !== 'vscode .map' ) continue ;
552+ if ( file !== 'issue-41.js .map' ) continue ;
394553
395554 if ( ! first ) console . log ( '\n\n***\n\n' ) ;
396555 first = false ;
0 commit comments