mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-11 12:49:16 +02:00
pastojs: comments
git-svn-id: trunk@43201 -
This commit is contained in:
parent
362e6232c3
commit
8a3df44734
@ -400,22 +400,24 @@ Works:
|
||||
- pass class property, static class property
|
||||
- pass array property
|
||||
- array of const, TVarRec
|
||||
- attributes
|
||||
- overflow check:
|
||||
-Co : Overflow checking of integer operations
|
||||
- generics
|
||||
|
||||
ToDos:
|
||||
- range check:
|
||||
type helper self:=
|
||||
- overflow check:
|
||||
?
|
||||
- cmd line param to set modeswitch
|
||||
- Result:=inherited;
|
||||
- asm-block annotate/reference
|
||||
- pas() test or use or read or write
|
||||
- trailing [,,,]
|
||||
- bug: DoIt(typeinfo(i)) where DoIt is in another unit and has TTypeInfo
|
||||
- $OPTIMIZATION ON|OFF
|
||||
- $optimization REMOVEEMPTYPROCS
|
||||
- $optimization REMOVEEMPTYPROCS,RemoveNotUsedDeclarations-
|
||||
- setlength(dynarray) modeswitch to not create a copy
|
||||
- 'new', 'Function' -> class var use .prototype
|
||||
- static arrays
|
||||
- clone multi dim static array
|
||||
- RTTI
|
||||
@ -428,50 +430,22 @@ ToDos:
|
||||
- stdcall of methods: pass original 'this' as first parameter
|
||||
- property read Arr[0] https://bugs.freepascal.org/view.php?id=33416
|
||||
- write, writeln
|
||||
- array of const
|
||||
- call array of proc element without ()
|
||||
- enums with custom values
|
||||
- library
|
||||
- constref
|
||||
- option overflow checking -Co
|
||||
+, -, *, Succ, Pred, Inc, Dec
|
||||
-Co : Overflow checking of integer operations
|
||||
-CO : Check for possible overflow of integer operations
|
||||
-C3 : Turn on ieee error checking for constants
|
||||
- optimizations:
|
||||
- move rtl.js functions to system.pp
|
||||
- add $mod only if needed
|
||||
- add Self only if needed
|
||||
- use a number for small sets
|
||||
- put set literals into constants
|
||||
- shortcut for test set is empty a=[] a<>[]
|
||||
- set operators on literals without temporary arrays, a in [b], [a]*b<>[]
|
||||
- combine multiple var a=0,b=0
|
||||
- init a local var with the first assignment
|
||||
- skip clone array for new array and arraysetlength
|
||||
- SetLength(scope.a,l) -> read scope only once, same for
|
||||
Include, Exclude, Inc, Dec, +=, -=, *=, /=
|
||||
- inline -Si
|
||||
- autoinline
|
||||
-O1 insert unit vars for complex literals
|
||||
-O1 no function Result var when assigned only once
|
||||
-O1 replace constant expression with result
|
||||
-O1 pass array element by ref: when index is constant, use that directly
|
||||
-O1 case-of with 6+ elements as binary tree
|
||||
-O2 insert local/unit vars for global type references:
|
||||
at start of intf var $r1=null;
|
||||
at end of impl: $r1=path;
|
||||
-O2 removeemptyprocs
|
||||
-O2 skip dead code If(false){...}
|
||||
-O2 CSE
|
||||
-O3 DFA
|
||||
see https://wiki.lazarus.freepascal.org/Pas2js_optimizations
|
||||
- objects
|
||||
- generics
|
||||
- operator overloading
|
||||
- operator enumerator
|
||||
- inline
|
||||
- extended RTTI
|
||||
- attributes
|
||||
|
||||
Debugging this unit: -d<x>
|
||||
VerbosePas2JS
|
||||
|
Loading…
Reference in New Issue
Block a user