История коммитов

Автор SHA1 Сообщение Дата
  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 лет назад