Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
8eb08d9
Copy other transformer
jfmengels Dec 4, 2021
b23753a
Get rid of unnecessary things
jfmengels Dec 5, 2021
b953cf5
Apply replacement for composeL
jfmengels Dec 5, 2021
eb3ce40
Extract variable
jfmengels Dec 5, 2021
869c6ef
Start count from 0
jfmengels Dec 5, 2021
7466e9d
Inverse operations for composeL
jfmengels Dec 5, 2021
2615b18
Split tests
jfmengels Dec 5, 2021
d312690
Fix replacement
jfmengels Dec 5, 2021
92edd44
Enable transformation
jfmengels Dec 5, 2021
7ab5172
Add comments
jfmengels Dec 5, 2021
290395a
Add test
jfmengels Dec 5, 2021
6820437
Recurse through children first
jfmengels Dec 5, 2021
3384771
Extract information
jfmengels Dec 5, 2021
e90e31f
Give less confusing names
jfmengels Dec 5, 2021
cc19bf4
Move comment
jfmengels Dec 5, 2021
9e48ce8
Compose multiple functions
jfmengels Dec 5, 2021
e7dbe67
Remove dollar signs f
jfmengels Dec 5, 2021
435ae30
Add passing test
jfmengels Dec 5, 2021
dc51f96
Add TODOs
jfmengels Dec 5, 2021
285c1a4
Give unique names to introduced params to avoid conflicts
jfmengels Dec 5, 2021
2596945
Add failing test
jfmengels Dec 7, 2021
f716aef
Add blocks
jfmengels Dec 7, 2021
3611d53
Wrap test code in IIFE
jfmengels Dec 7, 2021
d06560c
Insert new variable
jfmengels Dec 7, 2021
2c9367f
Create insertion mechanism
jfmengels Dec 7, 2021
289cf36
Extract function calls to variables
jfmengels Dec 7, 2021
070e0e5
Fix original source code
jfmengels Dec 7, 2021
493ab2e
Remove TODO
jfmengels Dec 7, 2021
c6e45c3
Add explanation
jfmengels Dec 7, 2021
7d77d21
Add test
jfmengels Dec 7, 2021
f81ff1a
Change test title
jfmengels Dec 7, 2021
413ed8a
Support extracting variable from the first argument
jfmengels Dec 7, 2021
f86da54
Fix examples
jfmengels Dec 7, 2021
6afcb54
Simplify test
jfmengels Dec 7, 2021
f35d3e4
Add failing test
jfmengels Dec 7, 2021
c46c0aa
Extract function
jfmengels Dec 7, 2021
4cb546b
Remove unnecessary imports
jfmengels Dec 7, 2021
f84422e
Also extract when it's a function expression
jfmengels Dec 7, 2021
a8373a3
Extract variable
jfmengels Dec 7, 2021
026a596
Don't replace the functions that we just introduced
jfmengels Dec 7, 2021
46e9541
Change name of param
jfmengels Dec 7, 2021
1a90b65
Change name of declarations
jfmengels Dec 7, 2021
2eb4452
Formatting
jfmengels Dec 7, 2021
20243bb
Remove TODO
jfmengels Dec 7, 2021
bdc97fe
Add failing test
jfmengels Dec 7, 2021
8a8c502
Make inserted variables start with a _
jfmengels Dec 7, 2021
8765113
Call mergeFunctionCalls
jfmengels Dec 7, 2021
a8bd8ff
Merge functions
jfmengels Dec 7, 2021
dd5ffbe
Insert new declarations in the right block
jfmengels Dec 8, 2021
016b036
Add TODOs
jfmengels Dec 8, 2021
f45a9be
Move the declaration next to the function that uses it
jfmengels Dec 8, 2021
6f5fb32
Declare statements next to the return statement when possible
jfmengels Dec 8, 2021
43f42e6
Make test code more real
jfmengels Dec 8, 2021
0644c27
Add test
jfmengels Dec 8, 2021
613f772
Make condition more solid
jfmengels Dec 8, 2021
074b0da
Extract function to top-level
jfmengels Dec 8, 2021
d93d4e6
Rename tests
jfmengels Dec 9, 2021
243b2b0
Create unique names manually
jfmengels Dec 9, 2021
f5182f8
Support extracting function calls on property accesses
jfmengels Dec 9, 2021
d23c411
Remove ideas that don't seem to improve performance
jfmengels Dec 9, 2021
15d3d59
Add failing tests
jfmengels Dec 9, 2021
89779d1
Move condition
jfmengels Dec 9, 2021
ba3cf61
Support A3 calls
jfmengels Dec 9, 2021
45c6a89
Change conditions
jfmengels Dec 9, 2021
727ecb7
Change conditions
jfmengels Dec 9, 2021
2e2f08c
Add TODO
jfmengels Dec 9, 2021
888555f
Add failing test
jfmengels Dec 9, 2021
a7f8e13
Update test
jfmengels Dec 10, 2021
17f6837
Inline call to createCompositionCall in createLambda
jfmengels Dec 10, 2021
5299f87
Don't extract to variables for A3
jfmengels Dec 10, 2021
ee44a07
Support wrapping in A2
jfmengels Dec 10, 2021
0d12ad7
Use AX functions for the second function as well
jfmengels Dec 10, 2021
bfb85ce
Add failing test
jfmengels Dec 10, 2021
3639c09
Extract to function
jfmengels Dec 10, 2021
b623471
Re-use function
jfmengels Dec 10, 2021
15c86e0
Move TODOs
jfmengels Dec 10, 2021
d55ea27
Reverse conditions
jfmengels Dec 10, 2021
f58199b
Add invocationRegex
jfmengels Dec 10, 2021
c69fa0c
Increment the AX wrapper count
jfmengels Dec 10, 2021
dcc061f
Add test for second function
jfmengels Dec 10, 2021
0eabc71
Update source explanation
jfmengels Dec 10, 2021
76bb953
Don't increment AX calls when it already has the perfect number
jfmengels Dec 10, 2021
ea02173
Remove composeL and composeR definitions
jfmengels Dec 10, 2021
a5c7da0
Extract regexes to util module
jfmengels Dec 10, 2021
b5f8edd
Improve documentation
jfmengels Dec 10, 2021
c5e8986
Don't replace calls to functions that only have a single argument
jfmengels Dec 11, 2021
1296eee
Add passing test
jfmengels Dec 12, 2021
7d178a4
Make test clearer
jfmengels Dec 12, 2021
1ebaa1e
Documentation improvements
jfmengels Dec 12, 2021
5c24046
Remove unnecessary import
jfmengels Dec 14, 2021
5605e04
Use mutable clone to update body
jfmengels Jan 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/transform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
createInlineListFromArrayTransformer,
} from './transforms/inlineListFromArray';
import { inlineEquality } from './transforms/inlineEquality';
import { lambdaifyFunctionComposition } from './transforms/lambdaifyFunctionComposition';

import {
objectUpdate,
Expand Down Expand Up @@ -92,6 +93,7 @@ export const transform = async (
[transforms.replaceStringFunctions, Replace.from_file('/../replacements/string') ],
[transforms.v8Analysis, v8Debug],
[transforms.variantShapes, normalizeVariantShapes],
[transforms.lambdaifyFunctionComposition, lambdaifyFunctionComposition],
[transforms.inlineFunctions, createFunctionInlineTransformer(verbose, transforms.fastCurriedFns)],
[transforms.inlineEquality, inlineEquality()],
[transforms.inlineNumberToString, inlineNumberToString()],
Expand Down
5 changes: 1 addition & 4 deletions src/transforms/inlineWrappedFunctions.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import ts from 'typescript';
import { invocationRegex, wrapperRegex } from './utils/wrappers';

/*

Expand Down Expand Up @@ -54,10 +55,6 @@ export type FuncSplit = {
const deriveRawLambdaName = (wrappedName: string): string =>
wrappedName + '_fn';

const wrapperRegex = /^F(?<arity>[1-9]+[0-9]*)$/;

const invocationRegex = /^A(?<arity>[1-9]+[0-9]*)$/;

function reportInlinining(split: FuncSplit, { inlined }: InlineContext) {
switch (split.type) {
case 'alias': {
Expand Down
Loading