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

Side by Side Diff: src/liveedit.cc

Issue 196133017: Experimental parser: merge r19949 (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/parser
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « src/lithium-codegen.cc ('k') | src/log.h » ('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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "scopes.h" 42 #include "scopes.h"
43 #include "v8memory.h" 43 #include "v8memory.h"
44 44
45 namespace v8 { 45 namespace v8 {
46 namespace internal { 46 namespace internal {
47 47
48 48
49 #ifdef ENABLE_DEBUGGER_SUPPORT 49 #ifdef ENABLE_DEBUGGER_SUPPORT
50 50
51 51
52 void SetElementNonStrict(Handle<JSObject> object, 52 void SetElementSloppy(Handle<JSObject> object,
53 uint32_t index, 53 uint32_t index,
54 Handle<Object> value) { 54 Handle<Object> value) {
55 // Ignore return value from SetElement. It can only be a failure if there 55 // Ignore return value from SetElement. It can only be a failure if there
56 // are element setters causing exceptions and the debugger context has none 56 // are element setters causing exceptions and the debugger context has none
57 // of these. 57 // of these.
58 Handle<Object> no_failure = 58 Handle<Object> no_failure =
59 JSObject::SetElement(object, index, value, NONE, kNonStrictMode); 59 JSObject::SetElement(object, index, value, NONE, SLOPPY);
60 ASSERT(!no_failure.is_null()); 60 ASSERT(!no_failure.is_null());
61 USE(no_failure); 61 USE(no_failure);
62 } 62 }
63 63
64 64
65 // A simple implementation of dynamic programming algorithm. It solves 65 // A simple implementation of dynamic programming algorithm. It solves
66 // the problem of finding the difference of 2 arrays. It uses a table of results 66 // the problem of finding the difference of 2 arrays. It uses a table of results
67 // of subproblems. Each cell contains a number together with 2-bit flag 67 // of subproblems. Each cell contains a number together with 2-bit flag
68 // that helps building the chunk list. 68 // that helps building the chunk list.
69 class Differencer { 69 class Differencer {
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 public: 352 public:
353 explicit CompareOutputArrayWriter(Isolate* isolate) 353 explicit CompareOutputArrayWriter(Isolate* isolate)
354 : array_(isolate->factory()->NewJSArray(10)), current_size_(0) {} 354 : array_(isolate->factory()->NewJSArray(10)), current_size_(0) {}
355 355
356 Handle<JSArray> GetResult() { 356 Handle<JSArray> GetResult() {
357 return array_; 357 return array_;
358 } 358 }
359 359
360 void WriteChunk(int char_pos1, int char_pos2, int char_len1, int char_len2) { 360 void WriteChunk(int char_pos1, int char_pos2, int char_len1, int char_len2) {
361 Isolate* isolate = array_->GetIsolate(); 361 Isolate* isolate = array_->GetIsolate();
362 SetElementNonStrict(array_, 362 SetElementSloppy(array_,
363 current_size_, 363 current_size_,
364 Handle<Object>(Smi::FromInt(char_pos1), isolate)); 364 Handle<Object>(Smi::FromInt(char_pos1), isolate));
365 SetElementNonStrict(array_, 365 SetElementSloppy(array_,
366 current_size_ + 1, 366 current_size_ + 1,
367 Handle<Object>(Smi::FromInt(char_pos1 + char_len1), 367 Handle<Object>(Smi::FromInt(char_pos1 + char_len1),
368 isolate)); 368 isolate));
369 SetElementNonStrict(array_, 369 SetElementSloppy(array_,
370 current_size_ + 2, 370 current_size_ + 2,
371 Handle<Object>(Smi::FromInt(char_pos2 + char_len2), 371 Handle<Object>(Smi::FromInt(char_pos2 + char_len2),
372 isolate)); 372 isolate));
373 current_size_ += 3; 373 current_size_ += 3;
374 } 374 }
375 375
376 private: 376 private:
377 Handle<JSArray> array_; 377 Handle<JSArray> array_;
378 int current_size_; 378 int current_size_;
379 }; 379 };
380 380
381 381
382 // Represents 2 strings as 2 arrays of tokens. 382 // Represents 2 strings as 2 arrays of tokens.
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 } 655 }
656 Handle<JSArray> GetJSArray() { 656 Handle<JSArray> GetJSArray() {
657 return array_; 657 return array_;
658 } 658 }
659 Isolate* isolate() const { 659 Isolate* isolate() const {
660 return array_->GetIsolate(); 660 return array_->GetIsolate();
661 } 661 }
662 662
663 protected: 663 protected:
664 void SetField(int field_position, Handle<Object> value) { 664 void SetField(int field_position, Handle<Object> value) {
665 SetElementNonStrict(array_, field_position, value); 665 SetElementSloppy(array_, field_position, value);
666 } 666 }
667 void SetSmiValueField(int field_position, int value) { 667 void SetSmiValueField(int field_position, int value) {
668 SetElementNonStrict(array_, 668 SetElementSloppy(array_,
669 field_position, 669 field_position,
670 Handle<Smi>(Smi::FromInt(value), isolate())); 670 Handle<Smi>(Smi::FromInt(value), isolate()));
671 } 671 }
672 Object* GetField(int field_position) { 672 Object* GetField(int field_position) {
673 return array_->GetElementNoExceptionThrown(isolate(), field_position); 673 return array_->GetElementNoExceptionThrown(isolate(), field_position);
674 } 674 }
675 int GetSmiValueField(int field_position) { 675 int GetSmiValueField(int field_position) {
676 Object* res = GetField(field_position); 676 Object* res = GetField(field_position);
677 CHECK(res->IsSmi()); 677 CHECK(res->IsSmi());
678 return Smi::cast(res)->value(); 678 return Smi::cast(res)->value();
679 } 679 }
680 680
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
811 } 811 }
812 812
813 void FunctionStarted(FunctionLiteral* fun) { 813 void FunctionStarted(FunctionLiteral* fun) {
814 HandleScope scope(isolate()); 814 HandleScope scope(isolate());
815 FunctionInfoWrapper info = FunctionInfoWrapper::Create(isolate()); 815 FunctionInfoWrapper info = FunctionInfoWrapper::Create(isolate());
816 info.SetInitialProperties(fun->name(), fun->start_position(), 816 info.SetInitialProperties(fun->name(), fun->start_position(),
817 fun->end_position(), fun->parameter_count(), 817 fun->end_position(), fun->parameter_count(),
818 fun->materialized_literal_count(), 818 fun->materialized_literal_count(),
819 current_parent_index_); 819 current_parent_index_);
820 current_parent_index_ = len_; 820 current_parent_index_ = len_;
821 SetElementNonStrict(result_, len_, info.GetJSArray()); 821 SetElementSloppy(result_, len_, info.GetJSArray());
822 len_++; 822 len_++;
823 } 823 }
824 824
825 void FunctionDone() { 825 void FunctionDone() {
826 HandleScope scope(isolate()); 826 HandleScope scope(isolate());
827 FunctionInfoWrapper info = 827 FunctionInfoWrapper info =
828 FunctionInfoWrapper::cast( 828 FunctionInfoWrapper::cast(
829 result_->GetElementNoExceptionThrown( 829 result_->GetElementNoExceptionThrown(
830 isolate(), current_parent_index_)); 830 isolate(), current_parent_index_));
831 current_parent_index_ = info.GetParentIndex(); 831 current_parent_index_ = info.GetParentIndex();
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 // scopes of this chain. 878 // scopes of this chain.
879 Scope* current_scope = scope; 879 Scope* current_scope = scope;
880 while (current_scope != NULL) { 880 while (current_scope != NULL) {
881 ZoneList<Variable*> stack_list(current_scope->StackLocalCount(), zone); 881 ZoneList<Variable*> stack_list(current_scope->StackLocalCount(), zone);
882 ZoneList<Variable*> context_list( 882 ZoneList<Variable*> context_list(
883 current_scope->ContextLocalCount(), zone); 883 current_scope->ContextLocalCount(), zone);
884 current_scope->CollectStackAndContextLocals(&stack_list, &context_list); 884 current_scope->CollectStackAndContextLocals(&stack_list, &context_list);
885 context_list.Sort(&Variable::CompareIndex); 885 context_list.Sort(&Variable::CompareIndex);
886 886
887 for (int i = 0; i < context_list.length(); i++) { 887 for (int i = 0; i < context_list.length(); i++) {
888 SetElementNonStrict(scope_info_list, 888 SetElementSloppy(scope_info_list,
889 scope_info_length, 889 scope_info_length,
890 context_list[i]->name()); 890 context_list[i]->name());
891 scope_info_length++; 891 scope_info_length++;
892 SetElementNonStrict( 892 SetElementSloppy(
893 scope_info_list, 893 scope_info_list,
894 scope_info_length, 894 scope_info_length,
895 Handle<Smi>(Smi::FromInt(context_list[i]->index()), isolate())); 895 Handle<Smi>(Smi::FromInt(context_list[i]->index()), isolate()));
896 scope_info_length++; 896 scope_info_length++;
897 } 897 }
898 SetElementNonStrict(scope_info_list, 898 SetElementSloppy(scope_info_list,
899 scope_info_length, 899 scope_info_length,
900 Handle<Object>(isolate()->heap()->null_value(), 900 Handle<Object>(isolate()->heap()->null_value(),
901 isolate())); 901 isolate()));
902 scope_info_length++; 902 scope_info_length++;
903 903
904 current_scope = current_scope->outer_scope(); 904 current_scope = current_scope->outer_scope();
905 } 905 }
906 906
907 return *scope_info_list; 907 return *scope_info_list;
908 } 908 }
909 909
910 Handle<JSArray> result_; 910 Handle<JSArray> result_;
911 int len_; 911 int len_;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
952 STATIC_ASCII_VECTOR("startPosition")); 952 STATIC_ASCII_VECTOR("startPosition"));
953 Handle<String> end_pos_key = factory->InternalizeOneByteString( 953 Handle<String> end_pos_key = factory->InternalizeOneByteString(
954 STATIC_ASCII_VECTOR("endPosition")); 954 STATIC_ASCII_VECTOR("endPosition"));
955 Handle<String> script_obj_key = factory->InternalizeOneByteString( 955 Handle<String> script_obj_key = factory->InternalizeOneByteString(
956 STATIC_ASCII_VECTOR("scriptObject")); 956 STATIC_ASCII_VECTOR("scriptObject"));
957 Handle<Smi> start_pos( 957 Handle<Smi> start_pos(
958 Smi::FromInt(message_location.start_pos()), isolate); 958 Smi::FromInt(message_location.start_pos()), isolate);
959 Handle<Smi> end_pos(Smi::FromInt(message_location.end_pos()), isolate); 959 Handle<Smi> end_pos(Smi::FromInt(message_location.end_pos()), isolate);
960 Handle<JSValue> script_obj = GetScriptWrapper(message_location.script()); 960 Handle<JSValue> script_obj = GetScriptWrapper(message_location.script());
961 JSReceiver::SetProperty( 961 JSReceiver::SetProperty(
962 rethrow_exception, start_pos_key, start_pos, NONE, kNonStrictMode); 962 rethrow_exception, start_pos_key, start_pos, NONE, SLOPPY);
963 JSReceiver::SetProperty( 963 JSReceiver::SetProperty(
964 rethrow_exception, end_pos_key, end_pos, NONE, kNonStrictMode); 964 rethrow_exception, end_pos_key, end_pos, NONE, SLOPPY);
965 JSReceiver::SetProperty( 965 JSReceiver::SetProperty(
966 rethrow_exception, script_obj_key, script_obj, NONE, kNonStrictMode); 966 rethrow_exception, script_obj_key, script_obj, NONE, SLOPPY);
967 } 967 }
968 } 968 }
969 969
970 // A logical 'finally' section. 970 // A logical 'finally' section.
971 isolate->set_active_function_info_listener(NULL); 971 isolate->set_active_function_info_listener(NULL);
972 script->set_source(*original_source); 972 script->set_source(*original_source);
973 973
974 if (rethrow_exception.is_null()) { 974 if (rethrow_exception.is_null()) {
975 return *(listener.GetResult()); 975 return *(listener.GetResult());
976 } else { 976 } else {
977 isolate->Throw(*rethrow_exception); 977 isolate->Throw(*rethrow_exception);
978 return 0; 978 return 0;
979 } 979 }
980 } 980 }
981 981
982 982
983 void LiveEdit::WrapSharedFunctionInfos(Handle<JSArray> array) { 983 void LiveEdit::WrapSharedFunctionInfos(Handle<JSArray> array) {
984 Isolate* isolate = array->GetIsolate(); 984 Isolate* isolate = array->GetIsolate();
985 HandleScope scope(isolate); 985 HandleScope scope(isolate);
986 int len = GetArrayLength(array); 986 int len = GetArrayLength(array);
987 for (int i = 0; i < len; i++) { 987 for (int i = 0; i < len; i++) {
988 Handle<SharedFunctionInfo> info( 988 Handle<SharedFunctionInfo> info(
989 SharedFunctionInfo::cast( 989 SharedFunctionInfo::cast(
990 array->GetElementNoExceptionThrown(isolate, i))); 990 array->GetElementNoExceptionThrown(isolate, i)));
991 SharedInfoWrapper info_wrapper = SharedInfoWrapper::Create(isolate); 991 SharedInfoWrapper info_wrapper = SharedInfoWrapper::Create(isolate);
992 Handle<String> name_handle(String::cast(info->name())); 992 Handle<String> name_handle(String::cast(info->name()));
993 info_wrapper.SetProperties(name_handle, info->start_position(), 993 info_wrapper.SetProperties(name_handle, info->start_position(),
994 info->end_position(), info); 994 info->end_position(), info);
995 SetElementNonStrict(array, i, info_wrapper.GetJSArray()); 995 SetElementSloppy(array, i, info_wrapper.GetJSArray());
996 } 996 }
997 } 997 }
998 998
999 999
1000 // Visitor that finds all references to a particular code object, 1000 // Visitor that finds all references to a particular code object,
1001 // including "CODE_TARGET" references in other code objects and replaces 1001 // including "CODE_TARGET" references in other code objects and replaces
1002 // them on the fly. 1002 // them on the fly.
1003 class ReplacingVisitor : public ObjectVisitor { 1003 class ReplacingVisitor : public ObjectVisitor {
1004 public: 1004 public:
1005 explicit ReplacingVisitor(Code* original, Code* substitution) 1005 explicit ReplacingVisitor(Code* original, Code* substitution)
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
1550 1550
1551 static Handle<Script> CreateScriptCopy(Handle<Script> original) { 1551 static Handle<Script> CreateScriptCopy(Handle<Script> original) {
1552 Isolate* isolate = original->GetIsolate(); 1552 Isolate* isolate = original->GetIsolate();
1553 1553
1554 Handle<String> original_source(String::cast(original->source())); 1554 Handle<String> original_source(String::cast(original->source()));
1555 Handle<Script> copy = isolate->factory()->NewScript(original_source); 1555 Handle<Script> copy = isolate->factory()->NewScript(original_source);
1556 1556
1557 copy->set_name(original->name()); 1557 copy->set_name(original->name());
1558 copy->set_line_offset(original->line_offset()); 1558 copy->set_line_offset(original->line_offset());
1559 copy->set_column_offset(original->column_offset()); 1559 copy->set_column_offset(original->column_offset());
1560 copy->set_data(original->data());
1561 copy->set_type(original->type()); 1560 copy->set_type(original->type());
1562 copy->set_context_data(original->context_data()); 1561 copy->set_context_data(original->context_data());
1563 copy->set_eval_from_shared(original->eval_from_shared()); 1562 copy->set_eval_from_shared(original->eval_from_shared());
1564 copy->set_eval_from_instructions_offset( 1563 copy->set_eval_from_instructions_offset(
1565 original->eval_from_instructions_offset()); 1564 original->eval_from_instructions_offset());
1566 1565
1567 // Copy all the flags, but clear compilation state. 1566 // Copy all the flags, but clear compilation state.
1568 copy->set_flags(original->flags()); 1567 copy->set_flags(original->flags());
1569 copy->set_compilation_state(Script::COMPILATION_STATE_INITIAL); 1568 copy->set_compilation_state(Script::COMPILATION_STATE_INITIAL);
1570 1569
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1633 int len = GetArrayLength(shared_info_array); 1632 int len = GetArrayLength(shared_info_array);
1634 for (int i = 0; i < len; i++) { 1633 for (int i = 0; i < len; i++) {
1635 Object* element = 1634 Object* element =
1636 shared_info_array->GetElementNoExceptionThrown(isolate, i); 1635 shared_info_array->GetElementNoExceptionThrown(isolate, i);
1637 CHECK(element->IsJSValue()); 1636 CHECK(element->IsJSValue());
1638 Handle<JSValue> jsvalue(JSValue::cast(element)); 1637 Handle<JSValue> jsvalue(JSValue::cast(element));
1639 Handle<SharedFunctionInfo> shared = 1638 Handle<SharedFunctionInfo> shared =
1640 UnwrapSharedFunctionInfoFromJSValue(jsvalue); 1639 UnwrapSharedFunctionInfoFromJSValue(jsvalue);
1641 1640
1642 if (function->shared() == *shared || IsInlined(*function, *shared)) { 1641 if (function->shared() == *shared || IsInlined(*function, *shared)) {
1643 SetElementNonStrict(result, i, Handle<Smi>(Smi::FromInt(status), 1642 SetElementSloppy(result, i, Handle<Smi>(Smi::FromInt(status), isolate));
1644 isolate));
1645 return true; 1643 return true;
1646 } 1644 }
1647 } 1645 }
1648 return false; 1646 return false;
1649 } 1647 }
1650 1648
1651 1649
1652 // Iterates over handler chain and removes all elements that are inside 1650 // Iterates over handler chain and removes all elements that are inside
1653 // frames being dropped. 1651 // frames being dropped.
1654 static bool FixTryCatchHandler(StackFrame* top_frame, 1652 static bool FixTryCatchHandler(StackFrame* top_frame,
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
1948 1946
1949 Isolate* isolate = shared_info_array->GetIsolate(); 1947 Isolate* isolate = shared_info_array->GetIsolate();
1950 int array_len = GetArrayLength(shared_info_array); 1948 int array_len = GetArrayLength(shared_info_array);
1951 1949
1952 // Replace "blocked on active" with "replaced on active" status. 1950 // Replace "blocked on active" with "replaced on active" status.
1953 for (int i = 0; i < array_len; i++) { 1951 for (int i = 0; i < array_len; i++) {
1954 if (result->GetElement(result->GetIsolate(), i) == 1952 if (result->GetElement(result->GetIsolate(), i) ==
1955 Smi::FromInt(LiveEdit::FUNCTION_BLOCKED_ON_ACTIVE_STACK)) { 1953 Smi::FromInt(LiveEdit::FUNCTION_BLOCKED_ON_ACTIVE_STACK)) {
1956 Handle<Object> replaced( 1954 Handle<Object> replaced(
1957 Smi::FromInt(LiveEdit::FUNCTION_REPLACED_ON_ACTIVE_STACK), isolate); 1955 Smi::FromInt(LiveEdit::FUNCTION_REPLACED_ON_ACTIVE_STACK), isolate);
1958 SetElementNonStrict(result, i, replaced); 1956 SetElementSloppy(result, i, replaced);
1959 } 1957 }
1960 } 1958 }
1961 return NULL; 1959 return NULL;
1962 } 1960 }
1963 1961
1964 1962
1965 class InactiveThreadActivationsChecker : public ThreadVisitor { 1963 class InactiveThreadActivationsChecker : public ThreadVisitor {
1966 public: 1964 public:
1967 InactiveThreadActivationsChecker(Handle<JSArray> shared_info_array, 1965 InactiveThreadActivationsChecker(Handle<JSArray> shared_info_array,
1968 Handle<JSArray> result) 1966 Handle<JSArray> result)
(...skipping 20 matching lines...) Expand all
1989 1987
1990 Handle<JSArray> LiveEdit::CheckAndDropActivations( 1988 Handle<JSArray> LiveEdit::CheckAndDropActivations(
1991 Handle<JSArray> shared_info_array, bool do_drop) { 1989 Handle<JSArray> shared_info_array, bool do_drop) {
1992 Isolate* isolate = shared_info_array->GetIsolate(); 1990 Isolate* isolate = shared_info_array->GetIsolate();
1993 int len = GetArrayLength(shared_info_array); 1991 int len = GetArrayLength(shared_info_array);
1994 1992
1995 Handle<JSArray> result = isolate->factory()->NewJSArray(len); 1993 Handle<JSArray> result = isolate->factory()->NewJSArray(len);
1996 1994
1997 // Fill the default values. 1995 // Fill the default values.
1998 for (int i = 0; i < len; i++) { 1996 for (int i = 0; i < len; i++) {
1999 SetElementNonStrict( 1997 SetElementSloppy(
2000 result, 1998 result,
2001 i, 1999 i,
2002 Handle<Smi>(Smi::FromInt(FUNCTION_AVAILABLE_FOR_PATCH), isolate)); 2000 Handle<Smi>(Smi::FromInt(FUNCTION_AVAILABLE_FOR_PATCH), isolate));
2003 } 2001 }
2004 2002
2005 2003
2006 // First check inactive threads. Fail if some functions are blocked there. 2004 // First check inactive threads. Fail if some functions are blocked there.
2007 InactiveThreadActivationsChecker inactive_threads_checker(shared_info_array, 2005 InactiveThreadActivationsChecker inactive_threads_checker(shared_info_array,
2008 result); 2006 result);
2009 isolate->thread_manager()->IterateArchivedThreads( 2007 isolate->thread_manager()->IterateArchivedThreads(
2010 &inactive_threads_checker); 2008 &inactive_threads_checker);
2011 if (inactive_threads_checker.HasBlockedFunctions()) { 2009 if (inactive_threads_checker.HasBlockedFunctions()) {
2012 return result; 2010 return result;
2013 } 2011 }
2014 2012
2015 // Try to drop activations from the current stack. 2013 // Try to drop activations from the current stack.
2016 const char* error_message = 2014 const char* error_message =
2017 DropActivationsInActiveThread(shared_info_array, result, do_drop); 2015 DropActivationsInActiveThread(shared_info_array, result, do_drop);
2018 if (error_message != NULL) { 2016 if (error_message != NULL) {
2019 // Add error message as an array extra element. 2017 // Add error message as an array extra element.
2020 Vector<const char> vector_message(error_message, StrLength(error_message)); 2018 Vector<const char> vector_message(error_message, StrLength(error_message));
2021 Handle<String> str = isolate->factory()->NewStringFromAscii(vector_message); 2019 Handle<String> str = isolate->factory()->NewStringFromAscii(vector_message);
2022 SetElementNonStrict(result, len, str); 2020 SetElementSloppy(result, len, str);
2023 } 2021 }
2024 return result; 2022 return result;
2025 } 2023 }
2026 2024
2027 2025
2028 // Describes a single callframe a target. Not finding this frame 2026 // Describes a single callframe a target. Not finding this frame
2029 // means an error. 2027 // means an error.
2030 class SingleFrameTarget { 2028 class SingleFrameTarget {
2031 public: 2029 public:
2032 explicit SingleFrameTarget(JavaScriptFrame* frame) 2030 explicit SingleFrameTarget(JavaScriptFrame* frame)
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
2131 2129
2132 bool LiveEditFunctionTracker::IsActive(Isolate* isolate) { 2130 bool LiveEditFunctionTracker::IsActive(Isolate* isolate) {
2133 return false; 2131 return false;
2134 } 2132 }
2135 2133
2136 #endif // ENABLE_DEBUGGER_SUPPORT 2134 #endif // ENABLE_DEBUGGER_SUPPORT
2137 2135
2138 2136
2139 2137
2140 } } // namespace v8::internal 2138 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/lithium-codegen.cc ('k') | src/log.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698