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

Side by Side Diff: src/builtins.h

Issue 1980483003: [es6] Reintroduce the instanceof operator in the backends. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Igors comments. 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/bootstrapper.cc ('k') | src/builtins.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 #ifndef V8_BUILTINS_H_ 5 #ifndef V8_BUILTINS_H_
6 #define V8_BUILTINS_H_ 6 #define V8_BUILTINS_H_
7 7
8 #include "src/base/flags.h" 8 #include "src/base/flags.h"
9 #include "src/handles.h" 9 #include "src/handles.h"
10 10
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 V(DatePrototypeGetTimezoneOffset, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 273 V(DatePrototypeGetTimezoneOffset, BUILTIN, UNINITIALIZED, kNoExtraICState) \
274 V(DatePrototypeGetUTCDate, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 274 V(DatePrototypeGetUTCDate, BUILTIN, UNINITIALIZED, kNoExtraICState) \
275 V(DatePrototypeGetUTCDay, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 275 V(DatePrototypeGetUTCDay, BUILTIN, UNINITIALIZED, kNoExtraICState) \
276 V(DatePrototypeGetUTCFullYear, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 276 V(DatePrototypeGetUTCFullYear, BUILTIN, UNINITIALIZED, kNoExtraICState) \
277 V(DatePrototypeGetUTCHours, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 277 V(DatePrototypeGetUTCHours, BUILTIN, UNINITIALIZED, kNoExtraICState) \
278 V(DatePrototypeGetUTCMilliseconds, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 278 V(DatePrototypeGetUTCMilliseconds, BUILTIN, UNINITIALIZED, kNoExtraICState) \
279 V(DatePrototypeGetUTCMinutes, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 279 V(DatePrototypeGetUTCMinutes, BUILTIN, UNINITIALIZED, kNoExtraICState) \
280 V(DatePrototypeGetUTCMonth, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 280 V(DatePrototypeGetUTCMonth, BUILTIN, UNINITIALIZED, kNoExtraICState) \
281 V(DatePrototypeGetUTCSeconds, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 281 V(DatePrototypeGetUTCSeconds, BUILTIN, UNINITIALIZED, kNoExtraICState) \
282 \ 282 \
283 V(FunctionHasInstance, BUILTIN, UNINITIALIZED, kNoExtraICState) \
284 V(FunctionPrototypeApply, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 283 V(FunctionPrototypeApply, BUILTIN, UNINITIALIZED, kNoExtraICState) \
285 V(FunctionPrototypeCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 284 V(FunctionPrototypeCall, BUILTIN, UNINITIALIZED, kNoExtraICState) \
286 \ 285 \
287 V(ReflectApply, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 286 V(ReflectApply, BUILTIN, UNINITIALIZED, kNoExtraICState) \
288 V(ReflectConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 287 V(ReflectConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState) \
289 \ 288 \
290 V(InternalArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 289 V(InternalArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \
291 V(ArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 290 V(ArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState) \
292 \ 291 \
293 V(MathMax, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 292 V(MathMax, BUILTIN, UNINITIALIZED, kNoExtraICState) \
294 V(MathMin, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 293 V(MathMin, BUILTIN, UNINITIALIZED, kNoExtraICState) \
295 \ 294 \
296 V(NumberConstructor, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 295 V(NumberConstructor, BUILTIN, UNINITIALIZED, kNoExtraICState) \
297 V(NumberConstructor_ConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 296 V(NumberConstructor_ConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState) \
298 \ 297 \
299 V(StringConstructor, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 298 V(StringConstructor, BUILTIN, UNINITIALIZED, kNoExtraICState) \
300 V(StringConstructor_ConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 299 V(StringConstructor_ConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState) \
301 \ 300 \
302 V(OnStackReplacement, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 301 V(OnStackReplacement, BUILTIN, UNINITIALIZED, kNoExtraICState) \
303 V(InterruptCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 302 V(InterruptCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \
304 V(StackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 303 V(StackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState) \
305 \ 304 \
306 V(MarkCodeAsToBeExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 305 V(MarkCodeAsToBeExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \
307 V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 306 V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState) \
308 V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, kNoExtraICState) \ 307 V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, kNoExtraICState) \
309 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V) 308 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, V)
310 309
311 // Define list of builtins implemented in TurboFan (with JS linkage). 310 // Define list of builtins implemented in TurboFan (with JS linkage).
312 #define BUILTIN_LIST_T(V) \ 311 #define BUILTIN_LIST_T(V) \
313 V(GeneratorPrototypeNext, 2) \ 312 V(FunctionPrototypeHasInstance, 2) \
314 V(GeneratorPrototypeReturn, 2) \ 313 V(GeneratorPrototypeNext, 2) \
315 V(GeneratorPrototypeThrow, 2) \ 314 V(GeneratorPrototypeReturn, 2) \
316 V(MathCeil, 2) \ 315 V(GeneratorPrototypeThrow, 2) \
317 V(MathClz32, 2) \ 316 V(MathCeil, 2) \
318 V(MathFloor, 2) \ 317 V(MathClz32, 2) \
319 V(MathRound, 2) \ 318 V(MathFloor, 2) \
320 V(MathSqrt, 2) \ 319 V(MathRound, 2) \
321 V(MathTrunc, 2) \ 320 V(MathSqrt, 2) \
322 V(ObjectHasOwnProperty, 2) \ 321 V(MathTrunc, 2) \
323 V(ArrayIsArray, 2) \ 322 V(ObjectHasOwnProperty, 2) \
324 V(StringPrototypeCharAt, 2) \ 323 V(ArrayIsArray, 2) \
325 V(StringPrototypeCharCodeAt, 2) \ 324 V(StringPrototypeCharAt, 2) \
326 V(AtomicsLoad, 3) \ 325 V(StringPrototypeCharCodeAt, 2) \
326 V(AtomicsLoad, 3) \
327 V(AtomicsStore, 4) 327 V(AtomicsStore, 4)
328 328
329 // Define list of builtin handlers implemented in assembly. 329 // Define list of builtin handlers implemented in assembly.
330 #define BUILTIN_LIST_H(V) \ 330 #define BUILTIN_LIST_H(V) \
331 V(LoadIC_Slow, LOAD_IC) \ 331 V(LoadIC_Slow, LOAD_IC) \
332 V(KeyedLoadIC_Slow, KEYED_LOAD_IC) \ 332 V(KeyedLoadIC_Slow, KEYED_LOAD_IC) \
333 V(StoreIC_Slow, STORE_IC) \ 333 V(StoreIC_Slow, STORE_IC) \
334 V(KeyedStoreIC_Slow, KEYED_STORE_IC) \ 334 V(KeyedStoreIC_Slow, KEYED_STORE_IC) \
335 V(LoadIC_Normal, LOAD_IC) \ 335 V(LoadIC_Normal, LOAD_IC) \
336 V(StoreIC_Normal, STORE_IC) 336 V(StoreIC_Normal, STORE_IC)
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 static void Generate_DatePrototypeGetUTCHours(MacroAssembler* masm); 584 static void Generate_DatePrototypeGetUTCHours(MacroAssembler* masm);
585 // ES6 section 20.3.4.16 Date.prototype.getUTCMilliseconds ( ) 585 // ES6 section 20.3.4.16 Date.prototype.getUTCMilliseconds ( )
586 static void Generate_DatePrototypeGetUTCMilliseconds(MacroAssembler* masm); 586 static void Generate_DatePrototypeGetUTCMilliseconds(MacroAssembler* masm);
587 // ES6 section 20.3.4.17 Date.prototype.getUTCMinutes ( ) 587 // ES6 section 20.3.4.17 Date.prototype.getUTCMinutes ( )
588 static void Generate_DatePrototypeGetUTCMinutes(MacroAssembler* masm); 588 static void Generate_DatePrototypeGetUTCMinutes(MacroAssembler* masm);
589 // ES6 section 20.3.4.18 Date.prototype.getUTCMonth ( ) 589 // ES6 section 20.3.4.18 Date.prototype.getUTCMonth ( )
590 static void Generate_DatePrototypeGetUTCMonth(MacroAssembler* masm); 590 static void Generate_DatePrototypeGetUTCMonth(MacroAssembler* masm);
591 // ES6 section 20.3.4.19 Date.prototype.getUTCSeconds ( ) 591 // ES6 section 20.3.4.19 Date.prototype.getUTCSeconds ( )
592 static void Generate_DatePrototypeGetUTCSeconds(MacroAssembler* masm); 592 static void Generate_DatePrototypeGetUTCSeconds(MacroAssembler* masm);
593 593
594 static void Generate_FunctionHasInstance(MacroAssembler* masm);
595 static void Generate_FunctionPrototypeApply(MacroAssembler* masm); 594 static void Generate_FunctionPrototypeApply(MacroAssembler* masm);
596 static void Generate_FunctionPrototypeCall(MacroAssembler* masm); 595 static void Generate_FunctionPrototypeCall(MacroAssembler* masm);
597 596
598 static void Generate_ReflectApply(MacroAssembler* masm); 597 static void Generate_ReflectApply(MacroAssembler* masm);
599 static void Generate_ReflectConstruct(MacroAssembler* masm); 598 static void Generate_ReflectConstruct(MacroAssembler* masm);
600 599
601 static void Generate_InternalArrayCode(MacroAssembler* masm); 600 static void Generate_InternalArrayCode(MacroAssembler* masm);
602 static void Generate_ArrayCode(MacroAssembler* masm); 601 static void Generate_ArrayCode(MacroAssembler* masm);
603 602
604 // ES6 section 20.2.2.10 Math.ceil ( x ) 603 // ES6 section 20.2.2.10 Math.ceil ( x )
(...skipping 17 matching lines...) Expand all
622 // ES6 section 20.2.2.32 Math.sqrt ( x ) 621 // ES6 section 20.2.2.32 Math.sqrt ( x )
623 static void Generate_MathSqrt(CodeStubAssembler* assembler); 622 static void Generate_MathSqrt(CodeStubAssembler* assembler);
624 // ES6 section 20.2.2.35 Math.trunc ( x ) 623 // ES6 section 20.2.2.35 Math.trunc ( x )
625 static void Generate_MathTrunc(CodeStubAssembler* assembler); 624 static void Generate_MathTrunc(CodeStubAssembler* assembler);
626 625
627 // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case. 626 // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case.
628 static void Generate_NumberConstructor(MacroAssembler* masm); 627 static void Generate_NumberConstructor(MacroAssembler* masm);
629 // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case. 628 // ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case.
630 static void Generate_NumberConstructor_ConstructStub(MacroAssembler* masm); 629 static void Generate_NumberConstructor_ConstructStub(MacroAssembler* masm);
631 630
631 // ES6 section 19.2.3.6 Function.prototype [ @@hasInstance ] ( V )
632 static void Generate_FunctionPrototypeHasInstance(
633 CodeStubAssembler* assembler);
634
632 // ES6 section 25.3.1.2 Generator.prototype.next ( value ) 635 // ES6 section 25.3.1.2 Generator.prototype.next ( value )
633 static void Generate_GeneratorPrototypeNext(CodeStubAssembler* assembler); 636 static void Generate_GeneratorPrototypeNext(CodeStubAssembler* assembler);
634 // ES6 section 25.3.1.3 Generator.prototype.return ( value ) 637 // ES6 section 25.3.1.3 Generator.prototype.return ( value )
635 static void Generate_GeneratorPrototypeReturn(CodeStubAssembler* assembler); 638 static void Generate_GeneratorPrototypeReturn(CodeStubAssembler* assembler);
636 // ES6 section 25.3.1.4 Generator.prototype.throw ( exception ) 639 // ES6 section 25.3.1.4 Generator.prototype.throw ( exception )
637 static void Generate_GeneratorPrototypeThrow(CodeStubAssembler* assembler); 640 static void Generate_GeneratorPrototypeThrow(CodeStubAssembler* assembler);
638 641
639 // ES6 section 19.1.3.2 Object.prototype.hasOwnProperty 642 // ES6 section 19.1.3.2 Object.prototype.hasOwnProperty
640 static void Generate_ObjectHasOwnProperty(CodeStubAssembler* assembler); 643 static void Generate_ObjectHasOwnProperty(CodeStubAssembler* assembler);
641 644
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 friend class BuiltinFunctionTable; 695 friend class BuiltinFunctionTable;
693 friend class Isolate; 696 friend class Isolate;
694 697
695 DISALLOW_COPY_AND_ASSIGN(Builtins); 698 DISALLOW_COPY_AND_ASSIGN(Builtins);
696 }; 699 };
697 700
698 } // namespace internal 701 } // namespace internal
699 } // namespace v8 702 } // namespace v8
700 703
701 #endif // V8_BUILTINS_H_ 704 #endif // V8_BUILTINS_H_
OLDNEW
« no previous file with comments | « src/bootstrapper.cc ('k') | src/builtins.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698