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

Side by Side Diff: test/webkit/instance-of-immediates.js

Issue 148503002: A64: Synchronize with r15545. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/a64
Patch Set: Created 6 years, 10 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
(Empty)
1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 //
4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions
6 // are met:
7 // 1. Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer.
9 // 2. Redistributions in binary form must reproduce the above copyright
10 // notice, this list of conditions and the following disclaimer in the
11 // documentation and/or other materials provided with the distribution.
12 //
13 // THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y
14 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 // DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y
17 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N
20 // ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23
24 description('This test makes sure that instance of behaves correctly when the va lue, constructor, or its prototype are immediates.');
25
26 // A Constructor to use check for instances of, and an instance called obj.
27 function Constructor() {}
28 var obj = new Constructor();
29
30 // Run a batch of tests; call'testInstanceOf' three times, passing 1, {}, and th e object 'obj', which is an instance of Constructor.
31 function testSet(constructor, testMethod)
32 {
33 testMethod["1"]("(1 instanceof " + constructor + ")");
34 testMethod["{}"]("({} instanceof " + constructor + ")");
35 testMethod["obj"]("(obj instanceof " + constructor + ")");
36 }
37
38 // Test set 1, test passing the integer 1 as the constructor to be tested for.
39 // The constructor being an object is the first thing tested, so these should al l throw.
40 testSet("1", { "1":shouldThrow, "{}":shouldThrow, "obj":shouldThrow });
41
42 // Test set 2, test passing an empty object ({}) as the constructor to be tested for.
43 // As well as being an object, the constructor must implement 'HasInstance' (i.e . be a function), so these should all throw too.
44 testSet("{}", { "1":shouldThrow, "{}":shouldThrow, "obj":shouldThrow });
45
46 // Test set 3, test passing Constructor as the constructor to be tested for.
47 // Nothing should except, the third test should pass, since obj is an instance o f Constructor.
48 testSet("Constructor", { "1":shouldBeFalse, "{}":shouldBeFalse, "obj":shouldBeTr ue });
49
50 // Test set 4, test passing Constructor as the constructor to be tested for - wi th Constructor.prototype set to the integer 1.
51 // Constructor.prototype being a non-object will cause an exception, /unless/ va lue is also a non-object, since this is checked first.
52 Constructor.prototype = 1;
53 testSet("Constructor", { "1":shouldBeFalse, "{}":shouldThrow, "obj":shouldThrow });
54
55 // Test set 5, test passing Constructor as the constructor to be tested for - wi th Constructor.prototype set to an empty object ({}).
56 // All test fail, no reason to throw. (obj instanceof Constructor) is now false , since Constructor.prototype has changed.
57 Constructor.prototype = {};
58 testSet("Constructor", { "1":shouldBeFalse, "{}":shouldBeFalse, "obj":shouldBeFa lse });
59
60 // Test set 6, test passing Constructor as the constructor to be tested for - wi th Constructor.prototype set to null.
61 // Test that behaviour is the same as for test set 4.
62 Constructor.prototype = null;
63 testSet("Constructor", { "1":shouldBeFalse, "{}":shouldThrow, "obj":shouldThrow });
OLDNEW
« no previous file with comments | « test/webkit/indexed-setter-on-global-object-expected.txt ('k') | test/webkit/instance-of-immediates-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698