OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 <stdlib.h> | 5 #include <stdlib.h> |
6 | 6 |
7 #include "test/cctest/test-api.h" | 7 #include "test/cctest/test-api.h" |
8 | 8 |
9 #include "include/v8-util.h" | 9 #include "include/v8-util.h" |
10 #include "src/api.h" | 10 #include "src/api.h" |
(...skipping 1992 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2003 " result.push(prop);" | 2003 " result.push(prop);" |
2004 "}" | 2004 "}" |
2005 "result")); | 2005 "result")); |
2006 // Check that we get all the property names returned including the | 2006 // Check that we get all the property names returned including the |
2007 // ones from the enumerators in the right order: indexed properties | 2007 // ones from the enumerators in the right order: indexed properties |
2008 // in numerical order, indexed interceptor properties, named | 2008 // in numerical order, indexed interceptor properties, named |
2009 // properties in insertion order, named interceptor properties. | 2009 // properties in insertion order, named interceptor properties. |
2010 // This order is not mandated by the spec, so this test is just | 2010 // This order is not mandated by the spec, so this test is just |
2011 // documenting our behavior. | 2011 // documenting our behavior. |
2012 CHECK_EQ(17u, result->Length()); | 2012 CHECK_EQ(17u, result->Length()); |
2013 // Indexed properties in numerical order. | 2013 // Indexed properties + indexed interceptor properties in numerical order. |
2014 CHECK(v8_str("5")->Equals(result->Get(v8::Integer::New(isolate, 0)))); | 2014 CHECK(v8_str("0")->Equals(result->Get(v8::Integer::New(isolate, 0)))); |
2015 CHECK(v8_str("10")->Equals(result->Get(v8::Integer::New(isolate, 1)))); | 2015 CHECK(v8_str("1")->Equals(result->Get(v8::Integer::New(isolate, 1)))); |
2016 CHECK(v8_str("140000")->Equals(result->Get(v8::Integer::New(isolate, 2)))); | 2016 CHECK(v8_str("5")->Equals(result->Get(v8::Integer::New(isolate, 2)))); |
| 2017 CHECK(v8_str("10")->Equals(result->Get(v8::Integer::New(isolate, 3)))); |
| 2018 CHECK(v8_str("140000")->Equals(result->Get(v8::Integer::New(isolate, 4)))); |
2017 CHECK( | 2019 CHECK( |
2018 v8_str("4294967294")->Equals(result->Get(v8::Integer::New(isolate, 3)))); | 2020 v8_str("4294967294")->Equals(result->Get(v8::Integer::New(isolate, 5)))); |
2019 // Indexed interceptor properties in the order they are returned | |
2020 // from the enumerator interceptor. | |
2021 CHECK(v8_str("0")->Equals(result->Get(v8::Integer::New(isolate, 4)))); | |
2022 CHECK(v8_str("1")->Equals(result->Get(v8::Integer::New(isolate, 5)))); | |
2023 // Named properties in insertion order. | 2021 // Named properties in insertion order. |
2024 CHECK(v8_str("a")->Equals(result->Get(v8::Integer::New(isolate, 6)))); | 2022 CHECK(v8_str("a")->Equals(result->Get(v8::Integer::New(isolate, 6)))); |
2025 CHECK(v8_str("b")->Equals(result->Get(v8::Integer::New(isolate, 7)))); | 2023 CHECK(v8_str("b")->Equals(result->Get(v8::Integer::New(isolate, 7)))); |
2026 CHECK(v8_str("c")->Equals(result->Get(v8::Integer::New(isolate, 8)))); | 2024 CHECK(v8_str("c")->Equals(result->Get(v8::Integer::New(isolate, 8)))); |
2027 CHECK( | 2025 CHECK( |
2028 v8_str("4294967295")->Equals(result->Get(v8::Integer::New(isolate, 9)))); | 2026 v8_str("4294967295")->Equals(result->Get(v8::Integer::New(isolate, 9)))); |
2029 CHECK(v8_str("d")->Equals(result->Get(v8::Integer::New(isolate, 10)))); | 2027 CHECK(v8_str("d")->Equals(result->Get(v8::Integer::New(isolate, 10)))); |
2030 CHECK(v8_str("e")->Equals(result->Get(v8::Integer::New(isolate, 11)))); | 2028 CHECK(v8_str("e")->Equals(result->Get(v8::Integer::New(isolate, 11)))); |
2031 CHECK(v8_str("30000000000") | 2029 CHECK(v8_str("30000000000") |
2032 ->Equals(result->Get(v8::Integer::New(isolate, 12)))); | 2030 ->Equals(result->Get(v8::Integer::New(isolate, 12)))); |
(...skipping 1250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3283 "var obj = intercepted_1;" | 3281 "var obj = intercepted_1;" |
3284 "obj.x = 4;" | 3282 "obj.x = 4;" |
3285 "eval('obj.x');" | 3283 "eval('obj.x');" |
3286 "eval('obj.x');" | 3284 "eval('obj.x');" |
3287 "eval('obj.x');" | 3285 "eval('obj.x');" |
3288 "obj = intercepted_2;" | 3286 "obj = intercepted_2;" |
3289 "obj.x = 9;" | 3287 "obj.x = 9;" |
3290 "eval('obj.x');", | 3288 "eval('obj.x');", |
3291 9); | 3289 9); |
3292 } | 3290 } |
OLD | NEW |