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

Side by Side Diff: test/cctest/test-decls.cc

Issue 1571873004: Ship ES2015 sloppy-mode const semantics (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Associate with --harmony-shipping Created 4 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
« no previous file with comments | « test/cctest/interpreter/test-bytecode-generator.cc ('k') | test/cctest/test-parsing.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 2007-2008 the V8 project authors. All rights reserved. 1 // Copyright 2007-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 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 220
221 221
222 v8::Local<Integer> DeclarationContext::Query(Local<Name> key) { 222 v8::Local<Integer> DeclarationContext::Query(Local<Name> key) {
223 return v8::Local<Integer>(); 223 return v8::Local<Integer>();
224 } 224 }
225 225
226 226
227 // Test global declaration of a property the interceptor doesn't know 227 // Test global declaration of a property the interceptor doesn't know
228 // about and doesn't handle. 228 // about and doesn't handle.
229 TEST(Unknown) { 229 TEST(Unknown) {
230 i::FLAG_legacy_const = true;
230 HandleScope scope(CcTest::isolate()); 231 HandleScope scope(CcTest::isolate());
231 v8::V8::Initialize(); 232 v8::V8::Initialize();
232 233
233 { DeclarationContext context; 234 { DeclarationContext context;
234 context.Check("var x; x", 235 context.Check("var x; x",
235 1, // access 236 1, // access
236 0, 0, EXPECT_RESULT, Undefined(CcTest::isolate())); 237 0, 0, EXPECT_RESULT, Undefined(CcTest::isolate()));
237 } 238 }
238 239
239 { DeclarationContext context; 240 { DeclarationContext context;
(...skipping 29 matching lines...) Expand all
269 270
270 class AbsentPropertyContext: public DeclarationContext { 271 class AbsentPropertyContext: public DeclarationContext {
271 protected: 272 protected:
272 virtual v8::Local<Integer> Query(Local<Name> key) { 273 virtual v8::Local<Integer> Query(Local<Name> key) {
273 return v8::Local<Integer>(); 274 return v8::Local<Integer>();
274 } 275 }
275 }; 276 };
276 277
277 278
278 TEST(Absent) { 279 TEST(Absent) {
280 i::FLAG_legacy_const = true;
279 v8::Isolate* isolate = CcTest::isolate(); 281 v8::Isolate* isolate = CcTest::isolate();
280 v8::V8::Initialize(); 282 v8::V8::Initialize();
281 HandleScope scope(isolate); 283 HandleScope scope(isolate);
282 284
283 { AbsentPropertyContext context; 285 { AbsentPropertyContext context;
284 context.Check("var x; x", 286 context.Check("var x; x",
285 1, // access 287 1, // access
286 0, 0, EXPECT_RESULT, Undefined(isolate)); 288 0, 0, EXPECT_RESULT, Undefined(isolate));
287 } 289 }
288 290
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 // Do the lookup in the object. 354 // Do the lookup in the object.
353 return v8::Local<Integer>(); 355 return v8::Local<Integer>();
354 } 356 }
355 357
356 private: 358 private:
357 State state_; 359 State state_;
358 }; 360 };
359 361
360 362
361 TEST(Appearing) { 363 TEST(Appearing) {
364 i::FLAG_legacy_const = true;
362 v8::V8::Initialize(); 365 v8::V8::Initialize();
363 HandleScope scope(CcTest::isolate()); 366 HandleScope scope(CcTest::isolate());
364 367
365 { AppearingPropertyContext context; 368 { AppearingPropertyContext context;
366 context.Check("var x; x", 369 context.Check("var x; x",
367 1, // access 370 1, // access
368 0, 0, EXPECT_RESULT, Undefined(CcTest::isolate())); 371 0, 0, EXPECT_RESULT, Undefined(CcTest::isolate()));
369 } 372 }
370 373
371 { AppearingPropertyContext context; 374 { AppearingPropertyContext context;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 } 411 }
409 412
410 // Use the prototype as the holder for the interceptors. 413 // Use the prototype as the holder for the interceptors.
411 virtual Local<ObjectTemplate> GetHolder(Local<FunctionTemplate> function) { 414 virtual Local<ObjectTemplate> GetHolder(Local<FunctionTemplate> function) {
412 return function->PrototypeTemplate(); 415 return function->PrototypeTemplate();
413 } 416 }
414 }; 417 };
415 418
416 419
417 TEST(ExistsInPrototype) { 420 TEST(ExistsInPrototype) {
421 i::FLAG_legacy_const = true;
418 HandleScope scope(CcTest::isolate()); 422 HandleScope scope(CcTest::isolate());
419 423
420 // Sanity check to make sure that the holder of the interceptor 424 // Sanity check to make sure that the holder of the interceptor
421 // really is the prototype object. 425 // really is the prototype object.
422 { ExistsInPrototypeContext context; 426 { ExistsInPrototypeContext context;
423 context.Check("this.x = 87; this.x", 0, 0, 1, EXPECT_RESULT, 427 context.Check("this.x = 87; this.x", 0, 0, 1, EXPECT_RESULT,
424 Number::New(CcTest::isolate(), 87)); 428 Number::New(CcTest::isolate(), 87));
425 } 429 }
426 430
427 { ExistsInPrototypeContext context; 431 { ExistsInPrototypeContext context;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 virtual Local<ObjectTemplate> GetHolder(Local<FunctionTemplate> function) { 521 virtual Local<ObjectTemplate> GetHolder(Local<FunctionTemplate> function) {
518 return hidden_proto_->InstanceTemplate(); 522 return hidden_proto_->InstanceTemplate();
519 } 523 }
520 524
521 private: 525 private:
522 Local<FunctionTemplate> hidden_proto_; 526 Local<FunctionTemplate> hidden_proto_;
523 }; 527 };
524 528
525 529
526 TEST(ExistsInHiddenPrototype) { 530 TEST(ExistsInHiddenPrototype) {
531 i::FLAG_legacy_const = true;
527 HandleScope scope(CcTest::isolate()); 532 HandleScope scope(CcTest::isolate());
528 533
529 { ExistsInHiddenPrototypeContext context; 534 { ExistsInHiddenPrototypeContext context;
530 context.Check("var x; x", 0, 0, 0, EXPECT_RESULT, 535 context.Check("var x; x", 0, 0, 0, EXPECT_RESULT,
531 Undefined(CcTest::isolate())); 536 Undefined(CcTest::isolate()));
532 } 537 }
533 538
534 { ExistsInHiddenPrototypeContext context; 539 { ExistsInHiddenPrototypeContext context;
535 context.Check("var x = 0; x", 0, 0, 0, EXPECT_RESULT, 540 context.Check("var x = 0; x", 0, 0, 0, EXPECT_RESULT,
536 Number::New(CcTest::isolate(), 0)); 541 Number::New(CcTest::isolate(), 0));
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 } 605 }
601 } 606 }
602 607
603 private: 608 private:
604 HandleScope handle_scope_; 609 HandleScope handle_scope_;
605 Local<Context> context_; 610 Local<Context> context_;
606 }; 611 };
607 612
608 613
609 TEST(CrossScriptReferences) { 614 TEST(CrossScriptReferences) {
615 i::FLAG_legacy_const = true;
610 v8::Isolate* isolate = CcTest::isolate(); 616 v8::Isolate* isolate = CcTest::isolate();
611 HandleScope scope(isolate); 617 HandleScope scope(isolate);
612 618
613 { SimpleContext context; 619 { SimpleContext context;
614 context.Check("var x = 1; x", 620 context.Check("var x = 1; x",
615 EXPECT_RESULT, Number::New(isolate, 1)); 621 EXPECT_RESULT, Number::New(isolate, 1));
616 context.Check("var x = 2; x", 622 context.Check("var x = 2; x",
617 EXPECT_RESULT, Number::New(isolate, 2)); 623 EXPECT_RESULT, Number::New(isolate, 2));
618 context.Check("const x = 3; x", EXPECT_EXCEPTION); 624 context.Check("const x = 3; x", EXPECT_EXCEPTION);
619 context.Check("const x = 4; x", EXPECT_EXCEPTION); 625 context.Check("const x = 4; x", EXPECT_EXCEPTION);
(...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after
1258 Undefined(CcTest::isolate())); 1264 Undefined(CcTest::isolate()));
1259 for (int i = 0; i < 4; i++) { 1265 for (int i = 0; i < 4; i++) {
1260 context.Check("f()", EXPECT_EXCEPTION); 1266 context.Check("f()", EXPECT_EXCEPTION);
1261 } 1267 }
1262 context.Check("%OptimizeFunctionOnNextCall(f);", EXPECT_RESULT, 1268 context.Check("%OptimizeFunctionOnNextCall(f);", EXPECT_RESULT,
1263 Undefined(CcTest::isolate())); 1269 Undefined(CcTest::isolate()));
1264 1270
1265 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION); 1271 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION);
1266 } 1272 }
1267 } 1273 }
OLDNEW
« no previous file with comments | « test/cctest/interpreter/test-bytecode-generator.cc ('k') | test/cctest/test-parsing.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698