// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "src/compiler/access-builder.h"
#include "src/compiler/ast-graph-builder.h"
#include "src/compiler/common-operator.h"
#include "src/compiler/generic-node-inl.h"
// The inlinee uses the context from the JSFunction object. This will
// also be the effect dependency for the inlinee as it produces an effect.
- // TODO(sigurds) Use simplified load once it is ready.
+ SimplifiedOperatorBuilder simplified(jsgraph->zone());
Node* context = jsgraph->graph()->NewNode(
- jsgraph->machine()->Load(kMachAnyTagged),
+ simplified.LoadField(AccessBuilder::ForJSFunctionContext()),
NodeProperties::GetValueInput(call, 0),
- jsgraph->Int32Constant(JSFunction::kContextOffset - kHeapObjectTag),
NodeProperties::GetEffectInput(call));
// {inlinee_inputs} counts JSFunction, Receiver, arguments, context,
"function bar(s, t) { return foo(s); };"
"return bar;})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(1), T.Val(1), T.Val(2));
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(13), T.Val(1), T.Val(2));
"})();"
"(function (s) { return f(s)})",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(42 + 12), T.Val(12), T.undefined());
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(42), T.Val("x"), T.undefined());
"return (function (s,t) { return bar(s); });"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(42 + 12), T.Val(12), T.undefined());
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(42 + 12), T.Val(12), T.undefined());
"return (function (s,t) { return bar(s) + bar(t); });"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(2 * 42 + 12 + 4), T.Val(12), T.Val(4));
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(42 + 42 + 12), T.Val(12), T.Val(4));
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(-11), T.Val(11), T.Val(4));
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(-329), T.Val(11), T.Val(4));
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(0.0), T.Val(11), T.Val(4));
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckThrows(T.undefined(), T.undefined());
"return bar;"
"})();",
CompilationInfo::kInliningEnabled |
- CompilationInfo::kContextSpecializing);
+ CompilationInfo::kContextSpecializing |
+ CompilationInfo::kTypingEnabled);
InstallAssertStackDepthHelper(CcTest::isolate());
T.CheckCall(T.Val(42), T.undefined(), T.undefined());