Paul Leathers
|
2f00cac3eb
Allow redeferral of functions that were fully compiled on original parse. Let the parser track heuristic and functional reasons for non-deferral separately by splitting one existing fscr bit into two. Functions that cannot be deferred for functional will not be redeferral candidates, but functions that were initially not deferred for heuristic reasons, e.g. small scripts, will become candidates for redeferral. Also fix an issue exposed by this change where FunctionInfo attribute bits set during byte code generation could be cleared in FuncInfo finalization.
|
7 жил өмнө |
Curtis Man
|
a4058ce9b6
Parser refactor: More use stronger type instead of casting from ParseNode
|
8 жил өмнө |
Curtis Man
|
39ee407eda
Parser refactor: First pass to use stronger type instead of casting from ParseNode
|
8 жил өмнө |
Derek Morris
|
eca08f1ab9
A pass over initialization of Arena-allocated classes
|
8 жил өмнө |
Taylor Woll
|
b8f90fb138
Load 'this' value in global function and global lambda into a special register
|
8 жил өмнө |
Taylor Woll
|
01994b6264
Add `IsDerivedClassConstructor` and refactor `Parser::CreateSpecialSymbolDeclarations`
|
8 жил өмнө |
Paul Leathers
|
1330a773c5
[CVE-2017-11807] Prevent redeferral of functions for which we are generating byte code. The FuncInfo holds a reference to the FunctionBody, and redeferral will clean up the FunctionBody and any entry points that have been created for it, as well as pointing the FunctionInfo to a new proxy. Restore the (re-)deferral attribute on candidate functions when the ByteCodeGenerator instance is being destroyed. Also make sure that disabling the CanDefer attribute doesn't prevent generation of scope info we will need if we redefer later.
|
8 жил өмнө |
Taylor Woll
|
be9bcf2388
Binding for special named properties
|
8 жил өмнө |
Paul Leathers
|
6492f39678
Clean up hasDeferredChild, hasRedeferrableChild, and IsRedeferrable() from FuncInfo. These were used to control scope info generation and stack args optimization but no longer are.
|
8 жил өмнө |
Paul Leathers
|
fdc770a733
Small cleanup in byte code gen. Remove from FuncInfo the hasGlobalReference bit, which has no significant uses, and the hasCapturedThis bit, which has no uses at all.
|
9 жил өмнө |
Aneesh Divakarakurup
|
27d6b57366
[2.0>master] [1.4>2.0] [MERGE #2723 @aneeshdk] Enabling eval in param scope
|
9 жил өмнө |
Paul Leathers
|
050ab56aed
Fix bad byte code when block-scoped function is called from with. Yesterday's fix was incomplete, because it failed to address the case in which the nested function called from a with statement is declared in a lexical scope. The concept we're conservatively using, of a scope containing a with statement as well as closure-captured data, has to be tracked on individual scopes rather than functions.
|
9 жил өмнө |
Aneesh Divakarakurup
|
08dc260232
Enabling eval in param scope
|
9 жил өмнө |
Michael Holman
|
afb61a697f
[2.0>master] [1.4>2.0] [MERGE #2697 @MikeHolman] 17-03 ChakraCore servicing release
|
9 жил өмнө |
Michael Holman
|
dd61e049de
[CVE-2017-0150] DeferDeserialize is not working properly with asm.js ChangeHeap
|
9 жил өмнө |
Paul Leathers
|
61cafb86d8
Defer functions enclosed in all contexts. Support deferral of functions enclosed in scopes other than function body and function expression scope -- in particular, ES6-style lexical scopes and parameter scopes. This requires changing ScopeInfo so that it is associated with a single scope rather than a function body. Instead of carrying per-function information for body/var scope, parameter scope, and function expression scope, ScopeInfo will describe one scope, with a value identifying the scope type, a pointer to the FunctionInfo that contains it, and a pointer to the enclosing ScopeInfo.. A FunctionProxy will point to the ScopeInfo that is the nearest enclosing scope. At parse time, we will reconstitute the closure environment by walking the list of enclosing ScopeInfo's. The code that allowed redeferral to work around the context limitation of deferring parsing is deleted, and the OptimizeBlockScope feature is off by default, as it doesn't play well with this new logic and isn't required to make (re-)deferral effective. (We will want to revisit it.)
|
9 жил өмнө |
Paul Leathers
|
1e22d8df49
Let redeferral work around block scope limitation of deferred parsing. Detect cases where only block-scoping prevents upfront deferral. Also detect cases where it is safe to treat a lexically-scoped function as a var-scoped one. For functions that meet both criteria, use the var binding for it in place of the lexical binding. If at byte code gen time there are no lexical/with/catch scopes in the current chain, mark the function as a redeferral candidate.
|
9 жил өмнө |
Paul Leathers
|
a384d2e3a3
Redefer function bodies that are not currently being executed and are
|
9 жил өмнө |
Curtis Man
|
e817def1bc
Optimizing ForInObjectEnumerator overhead
|
9 жил өмнө |
Curtis Man
|
226a96e8c0
[1.2>master] Merge remaining code changes from internal RS1 branch
|
9 жил өмнө |
Curtis Man
|
898582f13b
Merge remaining code changes from internal RS1 branch
|
9 жил өмнө |
Satheesh Ravindranath
|
91e0e91288
Stack Arguments Optimization with presence of Formals.
|
9 жил өмнө |
Hitesh Kanwathirtha
|
33a6f43792
Merge branch 'master' into linux_m2
|
9 жил өмнө |
Gonzo
|
a31c7a3007
cross platform: fix stack overflow (ulong)
|
9 жил өмнө |
Akrosh Gandhi
|
f2416b5ff9
Few destructuring fixes
|
10 жил өмнө |
Aneesh Divakarakurup
|
353e7d9559
Fixing issues with eval in the body of a funciton with split scope.
|
10 жил өмнө |
Suwei Chen
|
dfd30e220d
Assertion: default parameter with class expression
|
10 жил өмнө |
Paul Leathers
|
8ffb952597
Don't mark a nested function as a top-level event handler, since this can cause us to emit code to build a COM-hierarchy frame display from the this pointer, which should only be done for the function that is called by the host.
|
10 жил өмнө |
Jianchun Xu
|
cec0e9a84f
replace wchar_t/L"..." with char16/_u("...")
|
10 жил өмнө |
Aneesh Divakarakurup
|
3c28308d8d
This change set implements param scope and the body scope as parallel scopes.
|
10 жил өмнө |