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

Side by Side Diff: src/full-codegen.h

Issue 3295022: Handle global variables potentially shadowed by eval-introduced... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 3 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/arm/full-codegen-arm.cc ('k') | src/full-codegen.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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 374
375 // Platform-specific code for inline runtime calls. 375 // Platform-specific code for inline runtime calls.
376 void EmitInlineRuntimeCall(CallRuntime* expr); 376 void EmitInlineRuntimeCall(CallRuntime* expr);
377 377
378 #define EMIT_INLINE_RUNTIME_CALL(name, x, y) \ 378 #define EMIT_INLINE_RUNTIME_CALL(name, x, y) \
379 void Emit##name(ZoneList<Expression*>* arguments); 379 void Emit##name(ZoneList<Expression*>* arguments);
380 INLINE_RUNTIME_FUNCTION_LIST(EMIT_INLINE_RUNTIME_CALL) 380 INLINE_RUNTIME_FUNCTION_LIST(EMIT_INLINE_RUNTIME_CALL)
381 #undef EMIT_INLINE_RUNTIME_CALL 381 #undef EMIT_INLINE_RUNTIME_CALL
382 382
383 // Platform-specific code for loading variables. 383 // Platform-specific code for loading variables.
384 void EmitLoadGlobalSlotCheckExtensions(Slot* slot,
385 TypeofState typeof_state,
386 Label* slow);
384 void EmitVariableLoad(Variable* expr, Expression::Context context); 387 void EmitVariableLoad(Variable* expr, Expression::Context context);
385 388
386 // Platform-specific support for allocating a new closure based on 389 // Platform-specific support for allocating a new closure based on
387 // the given function info. 390 // the given function info.
388 void EmitNewClosure(Handle<SharedFunctionInfo> info); 391 void EmitNewClosure(Handle<SharedFunctionInfo> info);
389 392
390 // Platform-specific support for compiling assignments. 393 // Platform-specific support for compiling assignments.
391 394
392 // Load a value from a named property. 395 // Load a value from a named property.
393 // The receiver is left on the stack by the IC. 396 // The receiver is left on the stack by the IC.
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 static Register context_register(); 496 static Register context_register();
494 497
495 // Set fields in the stack frame. Offsets are the frame pointer relative 498 // Set fields in the stack frame. Offsets are the frame pointer relative
496 // offsets defined in, e.g., StandardFrameConstants. 499 // offsets defined in, e.g., StandardFrameConstants.
497 void StoreToFrameField(int frame_offset, Register value); 500 void StoreToFrameField(int frame_offset, Register value);
498 501
499 // Load a value from the current context. Indices are defined as an enum 502 // Load a value from the current context. Indices are defined as an enum
500 // in v8::internal::Context. 503 // in v8::internal::Context.
501 void LoadContextField(Register dst, int context_index); 504 void LoadContextField(Register dst, int context_index);
502 505
506 // Create an operand for a context field.
507 MemOperand ContextOperand(Register context, int context_index);
508
503 // AST node visit functions. 509 // AST node visit functions.
504 #define DECLARE_VISIT(type) virtual void Visit##type(type* node); 510 #define DECLARE_VISIT(type) virtual void Visit##type(type* node);
505 AST_NODE_LIST(DECLARE_VISIT) 511 AST_NODE_LIST(DECLARE_VISIT)
506 #undef DECLARE_VISIT 512 #undef DECLARE_VISIT
507 // Handles the shortcutted logical binary operations in VisitBinaryOperation. 513 // Handles the shortcutted logical binary operations in VisitBinaryOperation.
508 void EmitLogicalOperation(BinaryOperation* expr); 514 void EmitLogicalOperation(BinaryOperation* expr);
509 515
510 void VisitForTypeofValue(Expression* expr, Location where); 516 void VisitForTypeofValue(Expression* expr, Location where);
511 517
512 void VisitLogicalForValue(Expression* expr, 518 void VisitLogicalForValue(Expression* expr,
(...skipping 17 matching lines...) Expand all
530 536
531 friend class NestedStatement; 537 friend class NestedStatement;
532 538
533 DISALLOW_COPY_AND_ASSIGN(FullCodeGenerator); 539 DISALLOW_COPY_AND_ASSIGN(FullCodeGenerator);
534 }; 540 };
535 541
536 542
537 } } // namespace v8::internal 543 } } // namespace v8::internal
538 544
539 #endif // V8_FULL_CODEGEN_H_ 545 #endif // V8_FULL_CODEGEN_H_
OLDNEW
« no previous file with comments | « src/arm/full-codegen-arm.cc ('k') | src/full-codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698