tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

S12.2_A1.js (2004B)


      1 // Copyright 2009 the Sputnik authors.  All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 info: |
      6    Variables are created when the program is entered. Variables are initialised to "undefined"
      7    when created. A variable with an Initialiser is assigned the value of its AssignmentExpression when the
      8    VariableStatement is executed, not when the variable is created
      9 es5id: 12.2_A1
     10 description: Creating variables after entering the execution scope
     11 ---*/
     12 
     13 //////////////////////////////////////////////////////////////////////////////
     14 //CHECK#1
     15 try {
     16 __x = __x;
     17    __y = __x ? "good fellow" : "liar"; // __y assigned to "liar" since __x undefined
     18    __z = __z === __x ? 1 : 0; // __z assigned to 1 since both __x and __z are undefined
     19 } catch (e) {
     20 throw new Test262Error('#1: Using declarated variable before it declaration is admitted');
     21 }
     22 //
     23 //////////////////////////////////////////////////////////////////////////////
     24 
     25 //////////////////////////////////////////////////////////////////////////////
     26 //CHECK#2
     27 assert.throws(ReferenceError, function() {
     28    __something__undefined = __something__undefined;
     29 });
     30 //
     31 //////////////////////////////////////////////////////////////////////////////
     32 
     33 //////////////////////////////////////////////////////////////////////////////
     34 //CHECK#3
     35 if ((__y !== "liar")&(__z !== 1)) {
     36 throw new Test262Error('#3: (__y === "liar") and (__z === 1). Actual:  __y ==='+__y+' and __z ==='+__z  );
     37 }
     38 //
     39 //////////////////////////////////////////////////////////////////////////////
     40 
     41 var __x, __y = true, __z = __y ? "smeagol" : "golum";
     42 
     43 //////////////////////////////////////////////////////////////////////////////
     44 //CHECK#4
     45 if (!__y&!(__z = "smeagol")) {
     46 throw new Test262Error('#4: A variable with an Initialiser is assigned the value of its AssignmentExpression when the VariableStatement is executed');
     47 }
     48 //
     49 //////////////////////////////////////////////////////////////////////////////
     50 
     51 reportCompare(0, 0);