Merge V8 5.2.361.47 DO NOT MERGE
https://chromium.googlesource.com/v8/v8/+/5.2.361.47
FPIIM-449
Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
diff --git a/src/debug/debug-evaluate.cc b/src/debug/debug-evaluate.cc
index 1729408..d5ebaa5 100644
--- a/src/debug/debug-evaluate.cc
+++ b/src/debug/debug-evaluate.cc
@@ -95,11 +95,12 @@
}
Handle<JSFunction> eval_fun;
- ASSIGN_RETURN_ON_EXCEPTION(isolate, eval_fun,
- Compiler::GetFunctionFromEval(
- source, outer_info, context, SLOPPY,
- NO_PARSE_RESTRICTION, RelocInfo::kNoPosition),
- Object);
+ ASSIGN_RETURN_ON_EXCEPTION(
+ isolate, eval_fun,
+ Compiler::GetFunctionFromEval(
+ source, outer_info, context, SLOPPY, NO_PARSE_RESTRICTION,
+ RelocInfo::kNoPosition, RelocInfo::kNoPosition),
+ Object);
Handle<Object> result;
ASSIGN_RETURN_ON_EXCEPTION(
@@ -182,7 +183,8 @@
context_chain_element.wrapped_context = current_context;
}
context_chain_.Add(context_chain_element);
- } else if (scope_type == ScopeIterator::ScopeTypeBlock) {
+ } else if (scope_type == ScopeIterator::ScopeTypeBlock ||
+ scope_type == ScopeIterator::ScopeTypeEval) {
Handle<JSObject> materialized = factory->NewJSObjectWithNullProto();
frame_inspector.MaterializeStackLocals(materialized,
it.CurrentScopeInfo());
@@ -247,7 +249,8 @@
// 'this' is allocated in an outer context and is is already being
// referenced by the current function, so it can be correctly resolved.
return;
- } else if (local_function->shared()->scope_info()->HasReceiver()) {
+ } else if (local_function->shared()->scope_info()->HasReceiver() &&
+ !frame_->receiver()->IsTheHole()) {
recv = handle(frame_->receiver(), isolate_);
}
JSObject::SetOwnPropertyIgnoreAttributes(target, name, recv, NONE).Check();