Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save trycf/f51eac3bce3474129232b5a75465cb9d to your computer and use it in GitHub Desktop.
Save trycf/f51eac3bce3474129232b5a75465cb9d to your computer and use it in GitHub Desktop.
TryCF Gist
<cfscript>
function assert( actual, expected ) {
if ( expected == actual ) {
writeOutput( "✔" )
} else {
writeOutput( "✗" )
}
writeOutput( " expected `#expected#`, got `#actual#`<br>" );
}
original = {
"a": 10,
"b": [
20,30
],
"c": [
{ "d": 40 }
]
}
dup = duplicate( original );
dup.z = 50;
// mutate the original
original.a = 100;
original.b.append(400);
original.c[ 1 ].d = 500;
original.c[ 1 ].e = 600;
assert( original.keyExists( "z" ), false );
assert( original.a, 100 );
assert( dup.a, 10 );
assert( original.b.len(), 3 );
assert( dup.b.len(), 2 );
assert( original.c[ 1 ].d, 500 );
assert( original.c[ 1 ].e, 600 );
assert( dup.c[ 1 ].d, 40 );
assert( dup.c[ 1 ].keyExists("e"), false );
</cfscript>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment