Skip to content

Commit 1ecba0f

Browse files
GeorgNeisCommit bot
authored andcommitted
Version 4.9.385.18 (cherry-pick)
Merged a973f73 Expect JSReceiver in Runtime_DeleteLookupSlot, not just JSObject. BUG=chromium:583260 LOG=N [email protected] NOTRY=true NOPRESUBMIT=true Review URL: https://codereview.chromium.org/1666803003 Cr-Commit-Position: refs/branch-heads/4.9@{#23} Cr-Branched-From: 2fea296-refs/heads/4.9.385@{#1} Cr-Branched-From: 0c1430a-refs/heads/master@{#33306}
1 parent e38192d commit 1ecba0f

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

include/v8-version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#define V8_MAJOR_VERSION 4
1212
#define V8_MINOR_VERSION 9
1313
#define V8_BUILD_NUMBER 385
14-
#define V8_PATCH_LEVEL 17
14+
#define V8_PATCH_LEVEL 18
1515

1616
// Use 1 for candidates and 0 otherwise.
1717
// (Boolean macro values are not supported by all preprocessors.)

src/runtime/runtime-scopes.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -981,10 +981,10 @@ RUNTIME_FUNCTION(Runtime_DeleteLookupSlot) {
981981
return isolate->heap()->false_value();
982982
}
983983

984-
// The slot was found in a JSObject, either a context extension object,
984+
// The slot was found in a JSReceiver, either a context extension object,
985985
// the global object, or the subject of a with. Try to delete it
986986
// (respecting DONT_DELETE).
987-
Handle<JSObject> object = Handle<JSObject>::cast(holder);
987+
Handle<JSReceiver> object = Handle<JSReceiver>::cast(holder);
988988
Maybe<bool> result = JSReceiver::DeleteProperty(object, name);
989989
MAYBE_RETURN(result, isolate->heap()->exception());
990990
return isolate->heap()->ToBoolean(result.FromJust());
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Copyright 2016 the V8 project authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
__v_1 = {
6+
has() { return true }
7+
};
8+
__v_2 = new Proxy({}, __v_1);
9+
function __f_5(object) {
10+
with (object) { return delete __v_3; }
11+
}
12+
__f_5(__v_2)

0 commit comments

Comments
 (0)