Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(615)

Side by Side Diff: src/runtime/runtime-debug.cc

Issue 1968263002: Remove unused 'receiver' field from generators (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: weaken dcheck Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/runtime/runtime.h ('k') | src/runtime/runtime-generator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/runtime/runtime-utils.h" 5 #include "src/runtime/runtime-utils.h"
6 6
7 #include "src/arguments.h" 7 #include "src/arguments.h"
8 #include "src/debug/debug-evaluate.h" 8 #include "src/debug/debug-evaluate.h"
9 #include "src/debug/debug-frames.h" 9 #include "src/debug/debug-frames.h"
10 #include "src/debug/debug-scopes.h" 10 #include "src/debug/debug-scopes.h"
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 factory->NewStringFromAsciiChecked("[[GeneratorStatus]]"); 228 factory->NewStringFromAsciiChecked("[[GeneratorStatus]]");
229 result->set(0, *generator_status); 229 result->set(0, *generator_status);
230 Handle<String> status_str = factory->NewStringFromAsciiChecked(status); 230 Handle<String> status_str = factory->NewStringFromAsciiChecked(status);
231 result->set(1, *status_str); 231 result->set(1, *status_str);
232 232
233 Handle<String> function = 233 Handle<String> function =
234 factory->NewStringFromAsciiChecked("[[GeneratorFunction]]"); 234 factory->NewStringFromAsciiChecked("[[GeneratorFunction]]");
235 result->set(2, *function); 235 result->set(2, *function);
236 result->set(3, generator->function()); 236 result->set(3, generator->function());
237 237
238 Handle<String> receiver =
239 factory->NewStringFromAsciiChecked("[[GeneratorReceiver]]");
240 result->set(4, *receiver);
241 result->set(5, generator->receiver());
242 return factory->NewJSArrayWithElements(result); 238 return factory->NewJSArrayWithElements(result);
243 } else if (Object::IsPromise(object)) { 239 } else if (Object::IsPromise(object)) {
244 Handle<JSObject> promise = Handle<JSObject>::cast(object); 240 Handle<JSObject> promise = Handle<JSObject>::cast(object);
245 241
246 Handle<Object> status_obj = 242 Handle<Object> status_obj =
247 DebugGetProperty(promise, isolate->factory()->promise_state_symbol()); 243 DebugGetProperty(promise, isolate->factory()->promise_state_symbol());
248 RUNTIME_ASSERT_HANDLIFIED(status_obj->IsSmi(), JSArray); 244 RUNTIME_ASSERT_HANDLIFIED(status_obj->IsSmi(), JSArray);
249 const char* status = "rejected"; 245 const char* status = "rejected";
250 int status_val = Handle<Smi>::cast(status_obj)->value(); 246 int status_val = Handle<Smi>::cast(status_obj)->value();
251 switch (status_val) { 247 switch (status_val) {
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
688 } 684 }
689 685
690 // Add the value being returned. 686 // Add the value being returned.
691 if (at_return) { 687 if (at_return) {
692 details->set(details_index++, *return_value); 688 details->set(details_index++, *return_value);
693 } 689 }
694 690
695 // Add the receiver (same as in function frame). 691 // Add the receiver (same as in function frame).
696 Handle<Object> receiver(it.frame()->receiver(), isolate); 692 Handle<Object> receiver(it.frame()->receiver(), isolate);
697 DCHECK(!function->shared()->IsBuiltin()); 693 DCHECK(!function->shared()->IsBuiltin());
698 DCHECK_IMPLIES(is_sloppy(shared->language_mode()), receiver->IsJSReceiver()); 694 DCHECK_IMPLIES(
695 is_sloppy(shared->language_mode()),
696 receiver->IsJSReceiver() ||
697 // If this frame is a resumed generator, the receiver may be the hole,
698 // but
699 // it will not be observed as such due to forced context allocation.
700 (*receiver == isolate->heap()->the_hole_value() &&
701 function->shared()->is_generator()));
699 details->set(kFrameDetailsReceiverIndex, *receiver); 702 details->set(kFrameDetailsReceiverIndex, *receiver);
700 703
701 DCHECK_EQ(details_size, details_index); 704 DCHECK_EQ(details_size, details_index);
702 return *isolate->factory()->NewJSArrayWithElements(details); 705 return *isolate->factory()->NewJSArrayWithElements(details);
703 } 706 }
704 707
705 708
706 RUNTIME_FUNCTION(Runtime_GetScopeCount) { 709 RUNTIME_FUNCTION(Runtime_GetScopeCount) {
707 HandleScope scope(isolate); 710 HandleScope scope(isolate);
708 DCHECK(args.length() == 2); 711 DCHECK(args.length() == 2);
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after
1545 return Smi::FromInt(isolate->debug()->is_active()); 1548 return Smi::FromInt(isolate->debug()->is_active());
1546 } 1549 }
1547 1550
1548 1551
1549 RUNTIME_FUNCTION(Runtime_DebugBreakInOptimizedCode) { 1552 RUNTIME_FUNCTION(Runtime_DebugBreakInOptimizedCode) {
1550 UNIMPLEMENTED(); 1553 UNIMPLEMENTED();
1551 return NULL; 1554 return NULL;
1552 } 1555 }
1553 } // namespace internal 1556 } // namespace internal
1554 } // namespace v8 1557 } // namespace v8
OLDNEW
« no previous file with comments | « src/runtime/runtime.h ('k') | src/runtime/runtime-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698