OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/api.h" | 7 #include "src/api.h" |
8 #include "src/arguments.h" | 8 #include "src/arguments.h" |
9 #include "src/ast.h" | 9 #include "src/ast.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
988 | 988 |
989 GenerateRestoreName(&slow, name); | 989 GenerateRestoreName(&slow, name); |
990 TailCallBuiltin(masm(), SlowBuiltin(kind())); | 990 TailCallBuiltin(masm(), SlowBuiltin(kind())); |
991 return GetCode(kind(), Code::FAST, name); | 991 return GetCode(kind(), Code::FAST, name); |
992 } | 992 } |
993 | 993 |
994 | 994 |
995 Handle<Code> NamedStoreHandlerCompiler::CompileStoreField(LookupResult* lookup, | 995 Handle<Code> NamedStoreHandlerCompiler::CompileStoreField(LookupResult* lookup, |
996 Handle<Name> name) { | 996 Handle<Name> name) { |
997 Label miss; | 997 Label miss; |
998 | 998 GenerateStoreField(lookup, value(), &miss); |
999 FrontendHeader(receiver(), name, &miss); | |
1000 | |
1001 // Generate store field code. | |
1002 GenerateStoreField(holder(), lookup, receiver(), this->name(), value(), | |
1003 scratch1(), scratch2(), &miss); | |
1004 | |
1005 // Handle store cache miss. | |
1006 __ bind(&miss); | 999 __ bind(&miss); |
1007 TailCallBuiltin(masm(), MissBuiltin(kind())); | 1000 TailCallBuiltin(masm(), MissBuiltin(kind())); |
1008 return GetCode(kind(), Code::FAST, name); | 1001 return GetCode(kind(), Code::FAST, name); |
1009 } | 1002 } |
1010 | 1003 |
1011 | 1004 |
1012 Handle<Code> NamedStoreHandlerCompiler::CompileStoreViaSetter( | 1005 Handle<Code> NamedStoreHandlerCompiler::CompileStoreViaSetter( |
1013 Handle<JSObject> object, Handle<Name> name, Handle<JSFunction> setter) { | 1006 Handle<JSObject> object, Handle<Name> name, Handle<JSFunction> setter) { |
1014 Frontend(receiver(), name); | 1007 Frontend(receiver(), name); |
1015 GenerateStoreViaSetter(masm(), type(), receiver(), setter); | 1008 GenerateStoreViaSetter(masm(), type(), receiver(), setter); |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1291 Handle<FunctionTemplateInfo>( | 1284 Handle<FunctionTemplateInfo>( |
1292 FunctionTemplateInfo::cast(signature->receiver())); | 1285 FunctionTemplateInfo::cast(signature->receiver())); |
1293 } | 1286 } |
1294 } | 1287 } |
1295 | 1288 |
1296 is_simple_api_call_ = true; | 1289 is_simple_api_call_ = true; |
1297 } | 1290 } |
1298 | 1291 |
1299 | 1292 |
1300 } } // namespace v8::internal | 1293 } } // namespace v8::internal |
OLD | NEW |