rhino1.7.6.testsrc.tests.js1_5.extensions.regress-90596-001.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rhino Show documentation
Show all versions of rhino Show documentation
Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically
embedded into Java applications to provide scripting to end users.
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/*
* Date: 28 August 2001
*
* SUMMARY: A [DontEnum] prop, if overridden, should appear in toSource().
* See http://bugzilla.mozilla.org/show_bug.cgi?id=90596
*
* NOTE: some inefficiencies in the test are made for the sake of readability.
* Sorting properties alphabetically is done for definiteness in comparisons.
*/
//-----------------------------------------------------------------------------
var gTestfile = 'regress-90596-001.js';
var UBound = 0;
var BUGNUMBER = 90596;
var summary = 'A [DontEnum] prop, if overridden, should appear in toSource()';
var cnCOMMA = ',';
var cnLBRACE = '{';
var cnRBRACE = '}';
var cnLPAREN = '(';
var cnRPAREN = ')';
var status = '';
var statusitems = [];
var actual = '';
var actualvalues = [];
var expect= '';
var expectedvalues = [];
var obj = {};
status = inSection(1);
obj = {toString:9};
actual = obj.toSource();
expect = '({toString:9})';
addThis();
status = inSection(2);
obj = {hasOwnProperty:"Hi"};
actual = obj.toSource();
expect = '({hasOwnProperty:"Hi"})';
addThis();
status = inSection(3);
obj = {toString:9, hasOwnProperty:"Hi"};
actual = obj.toSource();
expect = '({toString:9, hasOwnProperty:"Hi"})';
addThis();
status = inSection(4);
obj = {prop1:1, toString:9, hasOwnProperty:"Hi"};
actual = obj.toSource();
expect = '({prop1:1, toString:9, hasOwnProperty:"Hi"})';
addThis();
// TRY THE SAME THING IN EVAL CODE
var s = '';
status = inSection(5);
s = 'obj = {toString:9}';
eval(s);
actual = obj.toSource();
expect = '({toString:9})';
addThis();
status = inSection(6);
s = 'obj = {hasOwnProperty:"Hi"}';
eval(s);
actual = obj.toSource();
expect = '({hasOwnProperty:"Hi"})';
addThis();
status = inSection(7);
s = 'obj = {toString:9, hasOwnProperty:"Hi"}';
eval(s);
actual = obj.toSource();
expect = '({toString:9, hasOwnProperty:"Hi"})';
addThis();
status = inSection(8);
s = 'obj = {prop1:1, toString:9, hasOwnProperty:"Hi"}';
eval(s);
actual = obj.toSource();
expect = '({prop1:1, toString:9, hasOwnProperty:"Hi"})';
addThis();
// TRY THE SAME THING IN FUNCTION CODE
function A()
{
status = inSection(9);
var s = 'obj = {toString:9}';
eval(s);
actual = obj.toSource();
expect = '({toString:9})';
addThis();
}
A();
function B()
{
status = inSection(10);
var s = 'obj = {hasOwnProperty:"Hi"}';
eval(s);
actual = obj.toSource();
expect = '({hasOwnProperty:"Hi"})';
addThis();
}
B();
function C()
{
status = inSection(11);
var s = 'obj = {toString:9, hasOwnProperty:"Hi"}';
eval(s);
actual = obj.toSource();
expect = '({toString:9, hasOwnProperty:"Hi"})';
addThis();
}
C();
function D()
{
status = inSection(12);
var s = 'obj = {prop1:1, toString:9, hasOwnProperty:"Hi"}';
eval(s);
actual = obj.toSource();
expect = '({prop1:1, toString:9, hasOwnProperty:"Hi"})';
addThis();
}
D();
//-----------------------------------------------------------------------------
test();
//-----------------------------------------------------------------------------
/*
* Sort properties alphabetically -
*/
function addThis()
{
statusitems[UBound] = status;
actualvalues[UBound] = sortThis(actual);
expectedvalues[UBound] = sortThis(expect);
UBound++;
}
/*
* Takes string of form '({"c", "b", "a", 2})' and returns '({"a","b","c",2})'
*/
function sortThis(sList)
{
sList = compactThis(sList);
sList = stripParens(sList);
sList = stripBraces(sList);
var arr = sList.split(cnCOMMA);
arr = arr.sort();
var ret = String(arr);
ret = addBraces(ret);
ret = addParens(ret);
return ret;
}
/*
* Strips out any whitespace from the text -
*/
function compactThis(text)
{
var charCode = 0;
var ret = '';
for (var i=0; i
© 2015 - 2024 Weber Informatics LLC | Privacy Policy