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

Side by Side Diff: src/v8natives.js

Issue 518056: Added ES5 15.2.3.2 Object.getPrototypeOf. (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: '' Created 10 years, 11 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
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 %SetProperty(obj, p, desc.getValue(), flag); 442 %SetProperty(obj, p, desc.getValue(), flag);
443 } else { 443 } else {
444 if (IS_FUNCTION(desc.getGet())) %DefineAccessor(obj, p, GETTER, desc.getGet( ), flag); 444 if (IS_FUNCTION(desc.getGet())) %DefineAccessor(obj, p, GETTER, desc.getGet( ), flag);
445 if (IS_FUNCTION(desc.getSet())) %DefineAccessor(obj, p, SETTER, desc.getSet( ), flag); 445 if (IS_FUNCTION(desc.getSet())) %DefineAccessor(obj, p, SETTER, desc.getSet( ), flag);
446 } 446 }
447 return true; 447 return true;
448 } 448 }
449 449
450 450
451 // ES5 section 15.2.3.5. 451 // ES5 section 15.2.3.5.
452 function ObjectGetPrototypeOf(obj) {
453 if (!(IS_OBJECT(obj) || IS_FUNCTION(obj))) {
454 throw MakeTypeError("object_get_prototype_non_object", [obj]);
455 }
456 return obj.__proto__;
457 }
458
459
460 // ES5 section 15.2.3.5.
452 function ObjectCreate(proto, properties) { 461 function ObjectCreate(proto, properties) {
453 if (!IS_OBJECT(proto) && !IS_NULL(proto)) { 462 if (!IS_OBJECT(proto) && !IS_NULL(proto)) {
454 throw MakeTypeError("proto_object_or_null", [proto]); 463 throw MakeTypeError("proto_object_or_null", [proto]);
455 } 464 }
456 var obj = new $Object(); 465 var obj = new $Object();
457 obj.__proto__ = proto; 466 obj.__proto__ = proto;
458 if (!IS_UNDEFINED(properties)) ObjectDefineProperties(obj, properties); 467 if (!IS_UNDEFINED(properties)) ObjectDefineProperties(obj, properties);
459 return obj; 468 return obj;
460 } 469 }
461 470
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 "hasOwnProperty", ObjectHasOwnProperty, 514 "hasOwnProperty", ObjectHasOwnProperty,
506 "isPrototypeOf", ObjectIsPrototypeOf, 515 "isPrototypeOf", ObjectIsPrototypeOf,
507 "propertyIsEnumerable", ObjectPropertyIsEnumerable, 516 "propertyIsEnumerable", ObjectPropertyIsEnumerable,
508 "__defineGetter__", ObjectDefineGetter, 517 "__defineGetter__", ObjectDefineGetter,
509 "__lookupGetter__", ObjectLookupGetter, 518 "__lookupGetter__", ObjectLookupGetter,
510 "__defineSetter__", ObjectDefineSetter, 519 "__defineSetter__", ObjectDefineSetter,
511 "__lookupSetter__", ObjectLookupSetter 520 "__lookupSetter__", ObjectLookupSetter
512 )); 521 ));
513 InstallFunctions($Object, DONT_ENUM, $Array( 522 InstallFunctions($Object, DONT_ENUM, $Array(
514 "keys", ObjectKeys, 523 "keys", ObjectKeys,
515 "create", ObjectCreate 524 "create", ObjectCreate,
525 "getPrototypeOf", ObjectGetPrototypeOf
516 )); 526 ));
517 } 527 }
518 528
519 SetupObject(); 529 SetupObject();
520 530
521 531
522 // ---------------------------------------------------------------------------- 532 // ----------------------------------------------------------------------------
523 // Boolean 533 // Boolean
524 534
525 function BooleanToString() { 535 function BooleanToString() {
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 783
774 // ---------------------------------------------------------------------------- 784 // ----------------------------------------------------------------------------
775 785
776 function SetupFunction() { 786 function SetupFunction() {
777 InstallFunctions($Function.prototype, DONT_ENUM, $Array( 787 InstallFunctions($Function.prototype, DONT_ENUM, $Array(
778 "toString", FunctionToString 788 "toString", FunctionToString
779 )); 789 ));
780 } 790 }
781 791
782 SetupFunction(); 792 SetupFunction();
OLDNEW
« no previous file with comments | « src/messages.js ('k') | test/es5conform/es5conform.status » ('j') | tools/presubmit.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698